完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
1.现在将UC/OS-II操作系统向多核扩展,但是,运行多任务的内核的许多操作需要获取当前运行core的ID,
请问6678有没有物理机制上的coreID,然后有没有提供一种方式去获取这个ID呢? 2.semaphore2的核间互斥机制,采用direct request方式请求信号量,read之后获取信号量, 然后SEM_DIRECTx寄存器的相应位(标示拥有信号量的CoreID和信号量是否FREE)是由硬件直接改写的吗? 如果是,这个CoreID又是怎样获取到的呢? 还有就是read操作可以这样写吗 #define SEM_DIRECT0 *(INT32U*)0x......... //配置寄存器地址 void get_sem() //DIRECT方式请求信号量 [ while(SEM_DIRECT0 != 0x1)[] //如果读取的值为COREID(不是0x1)则一直循环读取,直到读取值为0x0 ] void post_sem() //释放信号量 [ SEM_DIRECT0 = 0x1 //设置 ] 3.有没有相关的PLL、EMIF、tiMER、MMU相关的初始化例程? 新手上路,请多多指教!!谢谢 |
|
相关推荐
10个回答
|
|
xiangzhong kong 你好,
1. 直接读取寄存器DNUM即可获取当前coreID; 2. direct方式请求信号量,读取相应SEM_DIRECTx寄存器的相应位即可,如果为1表示获取信号量成功,该位由硬件改写,不需软件维护;读取寄存器SEM_DIRECTx中的OWNER位即可获取该信号量当前的owner cpuID; 上述请求及释放信号量的代码没问题。 hardware semaphore相关例程可参考如下帖子 www.deyisupport.com/.../2034.aspx C6678 Semaphore2 Hardware Module 问题 3. 初始化例程后续整理后会上传,你可以参考一下PDK。 |
|
|
|
tutu11 发表于 2018-6-21 13:45 Andy Yin 您好, 首先谢谢您的回复。我现在仍有几个问题, 1.6678的数据手册里面没有DNUM的地址映射,请问这个要在哪个文档里面找? 2.PDK是什么?初次做这方面的东西,对TI的一些工具,程序例程,技术资料不是很了解,还请多多指导。 3.启动过程中主核通过发送IPC中断给从核,让从核开始初始化,这个IPC的中断响应需要有中断返回吗?(我觉得是没有,但是这又和一般的中断有中断响应、中断返回产生不一致) 4.TIMER的问题,让每个核拥有相同的时钟频率,但是让这些核不在同一时间点产生时钟中断,(也就是说让不同的核在不同的时刻产生时钟中断)。这个要怎么样实现呢?请给些建议。 谢谢!!! |
|
|
|
xiangzhong kong 你好, 1. DNUM是一个通用的Register,可在C66X CPU and instruction set中找到; 2. PDK是TI针对DSP的加速器及外设等开发的底层驱动,相关的资料可以在下面的网页找到. processors.wiki.ti.com/.../C66x 3. 关于IPC请参考样例。 www.deyisupport.com/.../2535.aspx 【资料共享】如何使用TI的IPC模块 4. 针对不同核的需求可以通过配置不同的timer产生中断。 |
|
|
|
tutu11 发表于 2018-6-21 13:45 Andy Yin 您好, 再次谢谢您的回复。还要请教您几个问题。 1.获取coreID,通过读寄存器DNUM。但是这个读(读取之后将这个值存到一个变量里面)要怎么写呢?我对DSP的汇编不是太懂。 int coreID' int *x; x=&coreID; //获取coreID的地址 READ_CPU_NUM(x); //宏定义 #define READ_CPU_NUM(x) asm(".global _x" //引用一个在C中定义的变量 "mvkl _x,B4" //将coreID的地址写入B4寄存器 "mvkh _x,B4" "mvc DNUM,B6" //将DNUM的值写入B6 "STW B6,*B4" //将B6的值写到B4中存储的地址(X)所指向的coreID中 ) 您看这样写对吗? 2.所有的核共用一个中断服务表吗?即只有一个ISTP寄存器吗? 3.安装了CCSV5版本,但是找不到CSL文件夹。 敬请指导,谢谢!!! |
|
|
|
嫦娥爱八戒 发表于 2018-6-21 14:32 xiangzhong kong您好, 1. Uint coreID = DNUM; 即可 2. 每个核有独立的中断服务表. 3. 我查了一下我自己安装的CCS,其中没有自带的CSL,只在PDK中有。 |
|
|
|
tutu11 发表于 2018-6-21 14:20 Andy Yin谢谢! 请问: 1.片级中断控制器INTC里面有个host interrupt的概念,请问它是不是对应于CorePac内中断控制器的Event事件? 2.c6678有的INTC0和INTC1的input event事件源是相同的,但是out输出分别对应于core0-3和core4-7.请问当一个外部中断产生的时候,该中断是由INTC0还是INTC1来处理呢?这个是怎样的选择?硬件随即决定的吗? 3.c6678每个核有独立的中断服务表,那么每个核都有自己的与中断处理相关的8个寄存器(CSRIFRIER等),那么每个核也有独立的ISTP寄存器,但是每个ISTP的ISTB在reset之后的默认值是多少?在data manual里面没有找到。 |
|
|
|
嫦娥爱八戒 发表于 2018-6-21 14:55 xiangzhong kong您好, 1. INTC中的host interrupt对应你所说的Event事件; 2. 对于INTC0与INTC1均存在的input event,INTC0与INTC1均可处理,可以根据应用选择enable相应的INTCx并map到相应的output channel,然后映射到相应的中断等即可; |
|
|
|
tutu11 发表于 2018-6-21 15:14 您好: 1.您说的"enable相应的INTCx"应该是操作ENABLE_SET_INDEX_REG寄存器,使能对应的系统事件吧? 2.某个系统事件发生时,我如何将该事件映射到INTC四个控制器中的一个?寄存器CH_MAP_REGx的位域 CH0_MAP-CH3_MAP代表着INTC0-INT3吗? 3.CH_MAP_REGx有256个,当某个系统事件发生时,我该将事件映射到256个寄存器中的哪个? 谢谢! |
|
|
|
Andy Yin您好, 1.您前面提到,c6678每个核有独立的中断服务表,那么是不是每个核都有独立的与中断处理相关的8个寄存器(CSR、IFR、IER等)?如果是的话,那么每个核也有独立的ISTP寄存器,但是每个ISTP的ISTB在reset之后的默认值是多少?在data manual里面没有找到。 2.如果每个核有独立的中断相关寄存器。启动的时候,先初始化core0(主核),其他core(从核)执行空指令,并处于等待IPC中断的状态,(这时候从核应该是没做任何初始化的,包括IER也没有初始化,不知道是不是这样?)。如果是的话,这里有一个问题:从核在reset之后IER是禁止所有可屏蔽中断的,那么它怎么去发现并响应主核发送的启动IPC呢? 谢谢! |
|
|
|
嫦娥爱八戒 发表于 2018-6-21 15:31 xiangzhong kong您好, 1. 关于INTC请参考INTC Controller user guide www.ti.com/.../sprugw4 中的说明与例子,并结合CSL更深层次理解如何操作寄存器;同时可以参考www.deyisupport.com/.../2034.aspx 其中hardware semaphore关于INTC的使用; 2. 默认值在data manual没看到,但是可以通过CCSC>view->register查看复位值; 3. 在初始化过程多核均需根据需要做初始化,如果使用IPC进行多核同步,则需要对多核对IPC相关中断做好初始化配置工作。 不同的问题请另起帖子,谢谢! |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
661 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
587 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1041 浏览 1 评论
720 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
516 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
150浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
115浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
119浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
117浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
159浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 15:17 , Processed in 0.838534 second(s), Total 66, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号