TI中文支持网
TI专业的中文技术问题搜集分享网站

6678在SYS/BIOS系统下使用IPC多核触发问题请教

HI,各位,

       最近在调试6678在SYS/BIOS系统下使用IPC多核触发。我在裸跑的时候已经可以通过IPC使core0触发其他核了,但是在SYS/BIOS系统里面创建了一个task用于core0触发其他核,通过调试发现,core0已经正常的跑起来了,但是其他核并没有被触发 而跑起来。请问在这个问题中,还需要注意什么呢?

我在想SYS/BIOS的一个task是用一个while里面死循环的,说明一个task没调度的话是不会跳出的。但是core0的触发代码已经做好了,按理来说其他核会被加载上执行文件,请问这是什么情况呢?谢谢。

Andy Yin1:

您好,

你是在SYS/BIOS中使用IPCGR来产生核间中断,还是使用的是MCSDK安装完之后的IPC Module测试?如果只是采用直接写IPCGR寄存器的方式的话,在裸机及带SYS/BIOS下是没有差异的。请确认

chunlei gan:

回复 Andy Yin1:

HI Andy Yin,

     我用的是 :DEVICE_REG32_W(IPCGR(core), 1),也就是使用IPCGR来产生核间中断的。我再确认下。谢谢

chunlei gan:

回复 Andy Yin1:

hi Andy Yin,

  想问下,如果在SYS/BIOS下使用IPCGR触发的那块库和裸跑下的那块库是一样的么?

extern cregister volatile unsigned int DNUM;

extern far uint32_t _c_int00;

主要是上面这两句,在SYS/BIOS下也是相应的判断core和起始地址么?

谢谢

chunlei gan:

回复 Andy Yin1:

您好,Andy Yin

我在MCSDK安装目录下搜索到image_processing.ipc这块的IPC,请问这块是IPC Module测试程序么?还是在其他什么安装路径下?谢谢

chunlei gan:

回复 Andy Yin1:

您好,Andy Yin

      MCSDK安装完之后的IPC Module测试代码已经找到,在mcsdk_<version>\packages\ti\transport\ipc\qmss

                         谢谢

chunlei gan:

回复 Andy Yin1:

您好,Andy Yin

    我反复看了代码,把裸跑写IPCGR寄存器来用IPC触发成功的代码移植到SYS/BIOS里面,但是在SYS/BIOS下就是没法通过core0触发其他核。在裸跑代码中,就是通过写magic地址和用中断触发其他核的,想问下在SYS/BIOS下用中断触发的会不会有影响?谢谢

chunlei gan:

回复 Andy Yin1:

您好, Andy Yin

我在SYS/BIOS的task1里面做了core0触发core1的代码,代码在附件中,core0触发其他核后,给一个地址赋值,而当core1被触发后会有闪灯效果。但是core0可以启动,说明进入了task任务,而闪灯没有效果,说明core1没有被触发,你能帮我看下问题么?谢谢

Thomas Yang1:

回复 chunlei gan:

chunlei gan  你好

方便把整个工程发来看下吗,包括core0和 core1的,

请告诉我们必要的编译和运行注意事项,我们在EVM上复现一下,希望可以帮助到你

Andy Yin1:

回复 Thomas Yang1:

您好,

对你其中的DEVICE_REG32_W(BOOT_MAGIC_ADDR(core), (uint32_t)&_c_int00); 类似写magic addr的操作不是很理解,能否说明一下,谢谢

chunlei gan:

回复 Andy Yin1:

HI,Andy.

这句是在裸跑代码里面参考的,也是参考你们的demo–pcieboot_helloworld的里面,在for循环里面将每个core的_c_int00都写一次?

想问下如果用SYS/BIOS来写magic addr那需要怎么写呢?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 6678在SYS/BIOS系统下使用IPC多核触发问题请教
分享到: 更多 (0)