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

C6678SYS/BIOS 代码与多线程问题

请教:

        刚刚开始接触SYS/BIOS中多线程开发的问题,遇到一些问题,希望高手指教:

       1、如何创建一段内存中的数据缓存,使多个线程都能访问呢?

       2、我如果想自定义一个段,类似.text这样,该怎么做呢?(以前在.cmd中,现在BIOS好像不许有自定义cmd)

       3、如果一个线程调用了外设(如SRIO),在启动之后会自动进入BLOCK状态是吗?如果我需要等待操作完成呢?

       4、使用semaphore和mailbox有什么不一样的地方吗?好像二者都是通过pend和post来控制流程的。

       5、在BIOS程序中调用CSL库代码是不提倡的是吗?如果是,那一般是调用什么库呢?

       初研究不久,问题较多,希望有开发经验人士能给予详细指导,多谢!

Andy Yin1:

sysBios编程与不带bios的编程方式差异不大,主要是bios会进行任务调度、中断管理,其他的如共享内存、内存分配等都是可以使用与没有bios编程的方式一样。

1 可以定义一个全局变量,指定存放在相应的memory section;如果需要多核访问,则需要放在shared memory;

2 bios中有一个cfg文件,还可以添加一个cmd文件,可以在cmd中将相应的.section指定于相应的memory,具体请查看sysbios user guide memory章节有讲可以再带一个cmd;

3 任务进入block状态与是否调用外设没有关联,任务状态切换方式请阅读sysbios threading scheduling task section;

4 semaphore主要是用于避免多个master对共享资源访问产生冲突,同一时刻只允许一个master获取共享资源;而mailbox是用于任务之间消息及数据的传输。

5 bios中可以调用CSL,只是对硬件中断控制器INTC的配置不能使用CSL,其他的都可以用CSL。

上面这些问题在sysbios手册中都是有讲的,如有不清楚可以再结合sysbios wiki资料学习:http://processors.wiki.ti.com/index.php/Category:SYSBIOS

YUCHAO WANG:

回复 Andy Yin1:

Andy您好:

        谢谢您的回答!基本都明白了,不过还有一些小疑问:

        1、如果中断不许用CSL配置的话,那么是BIOS自动进行配置,还是我用别的方法配置呢?如果我要挂中断函数,是不是创建HWI就足够了呢?

         2、mailbox用于任务间消息与数据传输,是不是说他可以作为任务的共享内存用呢?

         3、bios占用内存太大,导致程序在L2上放不下。我可以把一些程序放到MSMC上吗?对程序段在L2上还是MSMC上有什么限制吗?

         regards.

赞(0)
未经允许不得转载:TI中文支持网 » C6678SYS/BIOS 代码与多线程问题
分享到: 更多 (0)