小编waf*_*man的帖子

Python:声音文件的频率分析

我正在生成一些声音文件,这些声音文件以不同的频率播放音调,并具有一定数量的谐波.
最终,这些声音将在带有小扬声器的设备上播放.

我有扬声器的频率响应曲线,并希望在Python中执行以下操作:

  1. 绘制声音文件的频谱.我需要对文件进行FFT并绘制它gnuplot
  2. 根据数据表中的频率响应曲线应用非线性传递函数.
  3. 应用函数后绘制结果.

有人知道吗 :

  • 什么是最简单的方法来做到这一点会是什么?
  • 或者是一个可以为我做这个的应用程序(基于GNU/Linux)?

python audio fft gnuplot wav

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

Linux:modpost没有构建任何东西

我在使用我的机器上构建任何内核模块时遇到问题.每当我构建一个模块时,modpost总是说零模块:

MODPOST 0 modules
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我编写了一个测试模块(hello.c):

#include <linux/module.h>       /* Needed by all modules */
#include <linux/kernel.h>       /* Needed for KERN_INFO */
#include <linux/init.h>         /* Needed for the macros */

static int __init hello_start(void)
{
printk(KERN_INFO "Loading hello module...\n");
printk(KERN_INFO "Hello world\n");
return 0;
}

static void __exit hello_end(void)
{
printk(KERN_INFO "Goodbye Mr.\n");
}

module_init(hello_start);
module_exit(hello_end);
Run Code Online (Sandbox Code Playgroud)

这是模块的Makefile:

obj-m = hello.o
KVERSION = $(shell uname -r)
all:
        make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) modules
clean:
        make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) clean
Run Code Online (Sandbox Code Playgroud)

当我在我的机器上构建它时,我得到以下输出:

make -C …
Run Code Online (Sandbox Code Playgroud)

linux gcc kernel-module

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

从压缩的内核映像获取uname信息

有没有一种很好的方法从压缩内核映像中提取uname所做的相同信息?我希望能够在嵌入式Linux系统上检查坐在休眠mtd中的内核的狗标签,并将其与当前运行的内核进行比较.

linux-kernel embedded-linux

7
推荐指数
1
解决办法
6257
查看次数

如果/何时取消分配的堆内存被回收?

我一直在嵌入式Linux系统上运行隔夜内存测试.使用vmstat我发现随着时间的推移,空闲内存会逐渐减少.根据procfs中的一些smaps分析,一个进程的堆以大致相同的速率增长.我怀疑内存泄漏,发现代码中的几个景点,其中并经常使用.但是,我没有看到没有匹配呼叫的呼叫.newdeletenewdelete

我再次运行内存测试,今天早上通过以下调用清除了内存缓存

echo 3 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)

vmstat中列出的可用内存下降到接近测试启动时的值.

内核是否定期回收未使用的堆页面?如果是这样,除了上面的那个之外还有其他时间吗?可能当空闲内存低于某个阈值时?

c++ linux memory-leaks memory-management heap-memory

6
推荐指数
1
解决办法
2354
查看次数

发送免费 ARP 消息

我正在寻找一种在 Linux 用户空间应用程序中以编程方式(在 C 中)发送免费 ARP 消息的方法。我注意到在 procfs 中有一些用于配置 ARP 的文件

/proc/sys/net/ipv4/conf/<interface_name> 
Run Code Online (Sandbox Code Playgroud)

有没有办法通过对相应网络接口的 ioctl 调用来做到这一点?

c linux networking

6
推荐指数
1
解决办法
3905
查看次数

简明的Makefile

我正在做一些Makefile重构,并试图找出实现Makefile的最简洁的方法,它执行以下操作:

  1. 有一个变量列出了所有源文件(可以是C和C++文件)
  2. 所有目标文件都在OBJ_DIR中生成
  3. 如果对象目录不存在,则创建该对象目录

这是我到目前为止:

...

OBJ_DIR = obj/
BIN_DIR = bin/
PROGRAM = program

SRCS = test1.cpp test2.c

OBJS  = $(addprefix $(OBJ_DIR), \
        $(patsubst %.cpp, %.o,  \
        $(patsubst %.c, %.o, $(SRCS))))

$(BIN_DIR)$(PROGRAM) : $(OBJS)
    $(CREATE_OUT_DIR)
    $(LINK)

$(OBJ_DIR)%.o : %.c
    $(CREATE_OBJ_DIR)
    $(CCOMPILE)

$(OBJ_DIR)%.o : %.cpp
    $(CREATE_OBJ_DIR)
    $(CPPCOMPILE)

...
Run Code Online (Sandbox Code Playgroud)

我想为每个.o编译消除对$(CREATE_OBJ_DIR)的调用.有人知道怎么做吗?我尝试添加这个,但它不会构建目标文件:

$(OBJS): | $(OBJ_DIR)

$(OBJ_DIR):
    $(CREATE_OBJ_DIR)
Run Code Online (Sandbox Code Playgroud)

makefile gnu-make

5
推荐指数
1
解决办法
652
查看次数

在文件中存储浮点数

对于我正在实现的C应用程序,我需要能够读取和写入一组配置值到文件.这些值是浮点数.将来有可能另一个应用程序(可以用C++,Python,Perl等编写)将使用相同的数据,因此这些配置值需要以编译器和机器独立的良好定义格式存储.

字节顺序转换函数(ntoh/hton)可以用来处理Endianness,但是什么是解决"float"值的不同含义的最佳方法?是否有存储花车的常用方法?舍入和截断不是问题,只要它被定义.

c floating-point

5
推荐指数
1
解决办法
1629
查看次数

拍摄嵌入式Linux Framebuffer的屏幕截图

我在评估套件(Zoom OMAP35x Torpedo Development Kit)上运行嵌入式Linux.该板有一个液晶显示器,我希望能够拍摄屏幕截图将它们转换为gif或png.我可以通过执行以下操作获取原始数据:"cp/dev/fb0 screen.raw",但我对如何将图像转换为gif或png格式感到困惑.

我玩过ImageMagick转换(例如:"convert -depth 8 -size 240x320 rgb:./ screen.raw -swap 0,2 -separate -combine screen.png"),但是无法获得看起来像的图像对.

有谁知道我可以尝试的任何其他工具?或者有没有人有使用ImageMagick的提示?

framebuffer imagemagick embedded-linux

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

构建嵌入式Linux系统

我在使用嵌入式Linux的设备上工作.在不久的将来,这种设备可能会变成一个产品系列,并且会增加一些设备(即硬件平台).这些设备类似,但可能包含处理器,硬件外围设备(和设备驱动程序),用户空间应用程序和内核设置.除了编译不同设备的发行版之外,我还想为开发构建调试发行版.

有哪些更常见的方法来组装和管理嵌入式Linux系统?我和Jenkins一直在一起玩,看到那里有一些潜力.

build-system embedded-linux jenkins

4
推荐指数
1
解决办法
969
查看次数

ARM处理器最干净的重置

最近,我一直在清理一些在ARM7控制器上运行的C代码.在某些情况下(升级,致命错误等),程序将执行重置.目前它只是跳到0并假设启动代码将正确地重新初始化所有内容.它让我想到了ARM复位的"保留无迹线"的最佳程序.这是我的第一次破解:

void Reset(void)
{
   /* Disable interrupts */
   __disable_interrupts();

/* Reset peripherals, externals and processor */
AT91C_BASE_RSTC->RSTC_RCR = AT91C_RSTC_KEY | AT91C_RSTC_PERRST | AT91C_RSTC_EXTRST| AT91C_RSTC_PROCRST;

while(AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_SRCMP);

/* Jump to the reset vector */
(*(void(*)())0)();
}
Run Code Online (Sandbox Code Playgroud)

此代码假定IAR ARM编译器和At91Lib.还有什么我没想过的?

c arm processor reset

3
推荐指数
1
解决办法
8948
查看次数

这个地址指向哪个功能?

我正在调试一个开源库,它有一个在加载时初始化的结构.struct的一个成员是一个函数指针.什么是最快的方式来确定它指向哪个功能?例如,如果我打印出函数指针的值,是否有一些工具可以用来查找函数的名称?我在嵌入式Linux系统上执行此操作,但尚未提供GDB.

c debugging gcc

2
推荐指数
1
解决办法
126
查看次数

指数使用了多少位

我正在编写一些函数,将float/double转换为定点和后退.有没有人知道确定浮点数或双精度指数部分的位数的最佳方法?我希望使用std :: numeric_limits中的东西,但没有运气.

指数部分是由C++标准定义的还是编译器/机器特定的?或者它可以在运行时变化?

c++ floating-point fixed-point

2
推荐指数
1
解决办法
449
查看次数

用于查找非虚拟析构函数的工具

有人知道可以找到多态基类的非虚拟析构函数的工具吗?

c++ linux

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