新手不知道在哪里发这个活动的帖子,就直接发了。板子收到直接撸起来了,没有再做开箱。
本次实验只增加了一个print指令,当然还能增加和优化更多,不过原理都是一样,如果有问题,希望各位小伙伴指出,共同进步。
我参考的是hello world程序,先下载的是多核矩阵的那个例程,愣是编译不过,没再研究,压缩包名是erpc_matrix_multiply_cm4_erpc_matrix_multiply_cm0plus.zip
唠唠差不多,下面开始前戏了。下载到例程,先开了启动文件,大概了解了一下,现在简单说明一下。希望对需要的伙伴有帮助。
CPU0: 1.通过CPU_ID[12:4]==0xC24和CPU_CTRL[0]==1判断CPU类型为主CPU; 2.启动类型选择:主芯片正常启动进入main函数; 3.主芯片外设相关初始化; 4.判断CPU个数,对CPU1进行初始化; 5.初始化CPU0的MAILBOX,设置CPU1启动地址,堆栈地址重启CPU1,等待CPU重启完成。
CPU1: 1.通过CPU_ID[12:4]==0xC24和CPU_CTRL[0]==1判断CPU类型为从CPU; 2.检查启动程序地址是否设置,未设置策进入睡眠,设置了则初始化堆栈指针; 3.跳转执行启动程序。 4.初始化MAILBOX,获取启动数据,按启动数据延时; 5.通知CPU0初始化完成。
大概就是这样,默认配置是M4是主机,M0+是从机,详情如下:
CPU Control register
实验截图:
每一句"Message from my_print"都是通过M4发送指令到M0+然后M0+解析运行后将结果返回给M4,M4通过debug串口打印出来。 |