【嘉楠勘智K510】+DSP core学习记录
[复制链接]
DSP core学习记录
K510一共有三个处理器,其中64-bit RISC-V dual core CPU用来运行linux,64-bit DSP core可以供用户开发使用。
DSP上没有操作系统,因此实现了一个任务调度管理器, 在DSP上运行的任务,运行时cpu通过mailbox协议向dsp发送消息启动相应的任务运行。
任务调度管理器,代码在k510_buildroot/package/dsp_scheduler目录下,用户可以在注册任务时配置优先级,DSP scheduler根据优先级进行任务调度。
mailbox 框架用于处理多处理器之间的通信。框架分为 controller 与 client。
controller 是直接操作硬件 mailbox 的驱动。它向下直接操作硬件寄存器,通过发送与接收中断(如果硬件支持)完成与 remote (也就是CPU)的通信;向上通过框架提供的接口完成与 client(也就是DSP) 驱动的交流。mailbox 框架所负责的就是 controller 与 client 之间的接口。
运行FFT
在终端输入cd /app/dsp_app_new进入该目录下,输入./dsp_app fft.bin启动FFT运行,其中dsp_app是加载DSP并使得dsp运行的程序,fft.bin是 DSP 裸机程序
运行结果如图所示:
DSP任务调度管理器
在终端输入cd /app/dsp_app_new进入该目录下,输入./dsp_app ../dsp_scheduler/scheduler.bin
加载任务调度裸机程序dsp scheduler
运行结果如下:
在终端输入cd /app/mailbox_demo
进入该目录下,输入/app/mailbox_demo/cpu2dsp_task_demo,cpu则发命令给dsp启动一个任务,并且发送处理数据的请求,dsp处理完成会发消息通知cpu
运行结果如下:
声音频率识别
开发板上板载一个MSM261D4030H1R数字麦克风,可以支持VAD唤醒,在此想利用麦克风模块获取声音,通过FFT计算出其频率。
根据官方文档介绍,用户自己的应用程序需要编写Config.in和makefile文件,并且这两个文件和源码都必须放在k510_buildroot/package 目录下,方便修改k510_buildroot目录下的Config.in文件,并把用户应用程序的Config.in文件添加进去。
这里参考package/hello_world 中Config.in和makefile文件写法,针对数字MIC的Config.in文件编写如下
但是对makefile文件进行对比,并没有明白要更改编写哪些地方,对此不是特别理解。
感觉想要啃动这块板子太难了,呜呜呜~
|