对于多核没有什么概念,所以看了F28377D的一些事例,也没有看明白,应该是我看的太浅了,有几个初级问题想问下大家:
1、CPU1和CPU2都可以控制所有的外设吗?还是说CPU1可以控制所有的,而CPU2受限制,或者是其他的?
2、CPU1和CPU2是怎么工作起来的?有两个main?或者其他方式?应该有什么配置的吧?
3、CPU1和CPU2之间的协调只有通过IPC来进行传输的吗?如果有一个变量,能共用吗?
4、大家有没有什么比较初级的两个CPU都用起来的历程可以借鉴呢?
谢谢了!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
对于多核没有什么概念,所以看了F28377D的一些事例,也没有看明白,应该是我看的太浅了,有几个初级问题想问下大家:
1、CPU1和CPU2都可以控制所有的外设吗?还是说CPU1可以控制所有的,而CPU2受限制,或者是其他的?
2、CPU1和CPU2是怎么工作起来的?有两个main?或者其他方式?应该有什么配置的吧?
3、CPU1和CPU2之间的协调只有通过IPC来进行传输的吗?如果有一个变量,能共用吗?
4、大家有没有什么比较初级的两个CPU都用起来的历程可以借鉴呢?
谢谢了!
1、CPU1和CPU2都可以控制所有的外设吗?还是说CPU1可以控制所有的,而CPU2受限制,或者是其他的?
初始状态CPU1控制所以的外设加共享RAM GSRAM,通过CPU1初始化进行分配内存和外设
2、CPU1和CPU2是怎么工作起来的?有两个main?或者其他方式?应该有什么配置的吧?
有两个项目,CPU完成初始化后会释放CPU2运行
3、CPU1和CPU2之间的协调只有通过IPC来进行传输的吗?如果有一个变量,能共用吗?
IPC是一个方式,还可以用messageram和GSRAM
4、大家有没有什么比较初级的两个CPU都用起来的历程可以借鉴呢?
下载controlsuite, F28377D的dual core例程都可以参考
1、在CCS Debug那里除了CPU1、CPU2还有CLA1、CLA2,这两个CLA不用烧程序的吧?
CLA的程序是少在CPU的FALSH,然后menorycopy到LSRAM分配给CLA的区域,如要调试load symbol就可以,记得加DEBUGSTOP设置断点。
2、是不是CPU1负责芯片IO口的初始化、配置,CPU2没有这个功能?然后CPU1需要运行后,CPU2才能工作,才可以去配置外设,使用外设?
其实不是,有一个bit释放就会让CPU从held reset回复。具体看一下standalone的例程就知道
3、有没有可能就是CPU1和CPU2共用一个外设,比如说CPU1里面设置了EPWM1的频率、占空比,然后CPU2运行的时候也有同样的动作,不过是不一样的频率、不一样的占空比呢?
不可能,外设必须有owner。但是可以在程序中切换,但是不建议这样做,会乱掉。
感谢您繁忙的时候还抽空为我解答,还有几个问题:
在controlsuite的例程adc_epwm_cpu1和adc_epwm_cpu2,我分别给芯片的CPU1和CPU2烧了不同的程序测试(我是直接Load Program然后选择不同的.OUT文件):
1、CPU1烧录文件夹CPU1_RAM_DEBUG的.OUT文件,CPU2烧录文件夹CPU2_RAM的.OUT文件,可以正常仿真,两个CPU运行正常,断电重启都没用;
2、CPU1烧录文件夹CPU1_FLASH_STANDALONE的.OUT文件,CPU2烧录文件夹CPU2_RAM的.OUT文件,开始Debug芯片都不工作,断电重启都没用;
3、CPU1烧录文件夹CPU1_FLASH_STANDALONE的.OUT文件,CPU2烧录文件夹CPU2_FLASH的.OUT文件,开始Debug芯片都不工作,断电重启都没用;
4、CPU1烧录文件夹CPU1_RAM_DEBUG的.OUT文件,CPU2烧录文件夹CPU2_FLASH的.OUT文件,开始Debug芯片CPU2不工作,断电重启都没用;
请问下,您知道是怎么一回事吗?还是我操作哪里有误呢?谢谢!
你的现象是正常的,如果你要断电正常运行,CPU1烧写standalone,CPU2烧写FLASH就可以
如果要debug, 烧写CPU1 FALSH DEBUG或者RAM DEBUG,CPU2烧写两个都可以,但是不能离线跑
我和您说下我的步骤:
1、板子SW1都是UP(1),A:SW1(ISO、UART)
2、供电,连接板上的下载USB
3、打开CCS,导入blinky_dc两个工程(V200--dual),开始时候CPU1和CPU2都是RAM-ACTIVE的,两个工程分别
右键->Properties->General->Configuration->Manage Configurations -> CPU1_FLASH_STANDALONE (ACTIVE) 和 CPU2_FLASH(ACTIVE)->OK
4、右键工程-> 分别Build Project 生成.OUT (有警告,都是说编译器版本问题的,#10190-D,#10272-D)
5、用CPU1的Target Configurations ->launch,CPU1和CPU2都连接,
点击CPU1->LOAD->CPU1_FLASH_STANDALONE->OK,点击CPU2->LOAD->CPU2_FLASH->OK
6、关电源,拔掉USB下载线,A:SW1(J-TAG,UART)
7、上电,LD2和LD3没反应
不知道哪里出错了,是不是编译器版本警告那里出问题了呢? 谢谢了!