小编waf*_*man的帖子

用于查找C风格演员表的工具

有没有人知道我可以用来在代码中找到显式C风格的演员表的工具?我正在重构一些C++代码,并希望尽可能替换C风格的转换.

示例C风格的演员将是:

Foo foo = (Foo) bar;
Run Code Online (Sandbox Code Playgroud)

相比之下,C++样式转换的例子是:

Foo foo = static_cast<Foo>(bar);
Foo foo = reinterpret_cast<Foo>(bar);
Foo foo = const_cast<Foo>(bar);
Run Code Online (Sandbox Code Playgroud)

c c++

32
推荐指数
4
解决办法
2954
查看次数

如何解析C头文件?

有没有人知道在Python中使用C头文件的漂亮方式?例如,我有一个包含全局变量的C程序:

typedef struct ImageInfo
{
    uint8_t revisionMajor;
    uint8_t revisionMinor;
    uint16_t checksum;    

} ImageInfo;

ImageInfo gImageInfo;   /* Placed at a specific address by the linker */
Run Code Online (Sandbox Code Playgroud)

我希望能够获取C编译器/链接器生成的二进制文件,并使用Python脚本解析此结构(并可能修改它).

c python

18
推荐指数
4
解决办法
2万
查看次数

用C或C++编写bootloader?

我正在为嵌入式系统编写程序,更具体地说是一个引导加载程序.我将使用C库与一些硬件组件进行交互,我可以选择用C或C++编写它.我有什么理由选择一个而不是另一个吗?我不需要C++的面向对象功能,但它确实有一个更强大的类型系统.它是否有其他语言功能可以使程序更健壮?我知道有些人会避免使用C++,因为它可以(但不总是)生成大型固件映像.

c c++ embedded bootloader

17
推荐指数
5
解决办法
7023
查看次数

Paramiko AuthenticationException问题

我在使用Paramiko(版本1.7.6-2)ssh客户端连接到设备时遇到问题:

$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import paramiko
>>> ssh = paramiko.SSHClient()
>>> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
>>> ssh.connect("123.0.0.1", username="root", password=None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/pymodules/python2.6/paramiko/client.py", line 327, in connect
    self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
  File "/usr/lib/pymodules/python2.6/paramiko/client.py", line 481, in _auth
    raise saved_exception
paramiko.AuthenticationException: Authentication failed.
>>> 
Run Code Online (Sandbox Code Playgroud)

当我从命令行使用ssh时,它工作正常:

ssh root@123.0.0.1


BusyBox v1.12.1 (2010-11-03 13:18:46 EDT) built-in …
Run Code Online (Sandbox Code Playgroud)

python ssh paramiko

12
推荐指数
3
解决办法
4万
查看次数

从用户空间获取U-boot的版本

有谁知道从用户空间安装U-boot版本的方法?有fw_printenv命令可以访问U-boot的环境变量,但不能访问版本.

embedded-linux u-boot

11
推荐指数
3
解决办法
2万
查看次数

Python:freeze.py在哪里?

谁知道2.6.5安装了freeze.py的位置?我似乎无法在任何地方找到它.是否被拉出并替换为其他东西?

python

10
推荐指数
1
解决办法
1万
查看次数

什么是.data.rel.ro用于?

我使用objdump来分析共享对象的内存使用情况.与.data和.rodata部分一起,我看到.data.rel.ro部分.

有谁知道这用了什么?

gcc objdump

9
推荐指数
1
解决办法
8032
查看次数

ARM组装 - 分支指令

我正在寻找一些程序集来启动在ARM处理器上运行的某些固件.定义了以下异常向量表:

    LDR     pc, =resetHandler
    LDR     pc, Undefined_Addr
    LDR     pc, SWI_Addr
    LDR     pc, Prefetch_Addr
    LDR     pc, Abort_Addr
    B       .
    LDR     pc, =irqHandler
    LDR     pc, FIQ_Addr
Run Code Online (Sandbox Code Playgroud)

有谁知道"." 分支("B")指令后呢?在调试器的反汇编窗口中,指令分支到自身.根据数据表,该条目是保留的,所以我猜这只是无限循环并等待看门狗重置.

embedded assembly arm

8
推荐指数
1
解决办法
2765
查看次数

ALSA:如何判断声音播放完毕的时间

我有一个c ++对象接受声音请求并使用ALSA播放它们.有线程处理声音请求.一些声音是周期性的,并在将wav文件内容写入ALSA库后重新安排.有没有办法在发布所有数据时发现?函数snd_pcm_writei是一个阻塞写入函数,但它并不一定意味着该文件已被播放.

我正在考虑的一个选项是在播放每个声音文件后调用snd_pcm_drain,然后在播放下一个文件时调用snd_pcm_prepare.这会是一个很好的解决方案吗?或者效率低下?

更新: "排水解决方案"似乎有效,但效率不高.这些调用需要一段时间才能返回(可能会清理一些资源)并增加程序的延迟.当我连续播放许多小文件时,延迟最佳.每个文件之间可以听到几秒钟的沉默; 这是snd_pcm_drain正在执行.

c++ alsa

8
推荐指数
1
解决办法
2025
查看次数

Linux共享内存同步

我已经实现了两个使用POSIX共享内存API共享数据的应用程序(即shm_open).一个进程更新存储在共享内存段中的数据,另一个进程读取它.我想使用某种互斥或信号量来同步对共享内存区域的访问.这样做最有效的方法是什么?我正在考虑的一些机制是

  • 存储在共享内存段中的POSIX互斥锁(需要设置PTHREAD_PROCESS_SHARED属性)
  • 使用创建System V信号量 semget

c linux performance posix shared-memory

8
推荐指数
1
解决办法
6911
查看次数