内核配置

驱动位置

module_drivers/drivers/remoteproc/mcu_remoteproc

设备树配置

备树所在位置:

module_drivers/dts/x1600.dtsi

mcu描述

 mcu: mcu@0x13420000 {
     compatible = "ingenic,x1600-mcu";
     reg = ;
     interrupt-parent = ;
     interrupt-names = "pdmam";
     interrupts = ;
     ingenic,tcsm_size = ;
 };

设备树默认配置

在板级设备树中添加
&mcu {
    status = "okay";
};

内核编译配置

Symbol: INGENIC_MCU_RPROC [=y]
Type  : tristate
Defined at module_drivers/drivers/remoteproc/Kconfig:1
  Prompt: ingenic remoteproc support
  Depends on: HAS_DMA [=y]
  Location:
    -> Ingenic device-drivers Configurations
(1)   -> [Remoteproc] drivers
Selects: REMOTEPROC [=y]

小核配置

小核SDK

小核工程编译

以template-mcu为例,提供以下三种编译方式,首先配置交叉编译工具链到环境变量,然后进行编译.

基于Makefile编译

$ make

会在build目录生成template.elf, template.bin文件.

基于cmake构建 - (推荐)

$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=../mips-gcc-sde-elf.cmake ..
$ make

会在build目录下生成template.elf,template.bin文件.

基于vscode集成开发环境

前提:确认cmake 版本 cmake-v3.23.1 ,可以使用最新的cmake版本。 注意:不要使用工具链的cmake。否则vscode 会报错。

流程如下:

1. vscode 打开工程
2. 选择cmake kits:cmake-kits "GCC for ingenic cross compile on Linux"
3. lunch(F5) 运行编译、调试
4. 选择状态栏,build, 进行代码编译.

加载和运行程序

1. 将bin文件放置在开发板/lib/firmware目录下(该目录需要手动创建);
2. 将bin文件更名为libmcu-bare.bin;
3. 执行以下命令进行加载
    echo 1 > /sys/devices/platform/ahb2/13420000.mcu/load_fw