基于TMS320C6678 的多核DSP 上电加载技术
去掉,加到Core0被去掉了末尾字节的根表文件后,然后再将每个核的_C_int00当成一个4字节的数据段来保存到上面的合成文件的后面,而各_C_int00在片上的存放地址即为各核的专门固定地址Boot Magic Address,如Core1 的Boot Magic Ad-dress 为0x1187fffc,Core2 为0x1287fffc,…,Core7 为0x1787fffc.所有根表数据段构成后,再将4个0字节作为结尾标志加到文件的最后,这样合并后的根表文件如表2所示。同样,将二级Loader的代码数据加到该文件头部即形成多核的映像文件。由hex6x 生成的单核根表文件到合成映像文件的产生,全是文件操作,可以用一般的C语言工具,甚至Matlab等工具都可以完成。
同表1相比,表2仅仅只是增加了所有辅助核数据段和各核的_C_int00特殊数据段而已,表头和结束字节都相同,因此完全适用于二级Loader按统一Boot Table格式搬移数据。需特别注意,各辅助核的out文件通过hex6x.exe 产生的根表数据段中,当映射到L2(0×00800000~0x0087FFFF)的范围时,与Core0 的地址是相互覆盖的,产生合成根表时必须加上各核的L2基地址0×10000000 + n*0×1000000(n 为辅助核号),如Core1 的地址0×00825000,映射为0×11825000,同样地址Core2映射为0×12825000,Core7映射为0×17825000.
3 二级Loader 程序和FLASH烧写程序
二级Loader 是一段小代码程序,其功能就是将FLASH 的根表数据如图1 中从0×70000400 开始按表2的格式保存的数据搬移到DSP的RAM中。该Loader比较简单,一般是一小段汇编代码,代码如下:

需要注意的是,由于DDR 没有初始化,所以二级Loader不能加载DDR数据,DDR只作数据存储器用,确实要加载到DDR中,只能将DDR数据存在FLASH一指定段中,待Core0运行开始初始化DDR 后,将该数据读到RAM中。
对于FLASH 的烧写程序,主要任务就是把多核的合成文件烧写到外部Emif16 NOR-FLASH 存储器中。
由于TI大部分的Emif并口加载都是开放式的,开发者完全可以根据自己的思路和格式来产生和烧写映像文件,故烧写器TI公司是不提供的。其实,一旦合成根表文件产生后,烧写器也显得容易了。烧写器一般使用输出legacy COFF格式的CCS工程即可。从图1的加载过程看,要烧写的映像文件内容包括二级加载器Loader的代码和表2 的根表文件两部分。二级Loader可以放到烧写器的开头main()函数之前,也可以放到Core0的应用程序同样位置,本研究采用前者,将二级Loader代码映射到烧写工程中指定的存储器。boot_load段。烧写器的编程流程如图2所示。

4 辅助核的触发
多核的加载,如果图1 中仅仅只是进入Core0 的_C_int00地址运行而其他核还未激活,加载仍然是失败的。辅助核的触发,必须两个条件,一是将各核工程的入口地址_C_int00 写到各核的Boot Magic Address 处;二是向各核的核间中断触发寄存器IPCx(1
一旦辅助核被触发,在辅助核应用程序中,须向各自核的Boot Magic Address 写入数据0xbabeface 替换各自的_C_int00.
5 结语
多核DSP 加载是一项比较复杂但又很重要的过程,也是多核技术的应用难点之一,一个多核DSP开发人员,如果要成功走向应用,上电加载这一关是必须要过的。各核的应用工程可以是输出elf格式sysbios工程,也可以不是sysbios 工程。上面的多核Emif16NOR-FLASH 加载方法,在自研的C6678 图像信号处理系统中已成功加载。
TMS320C6678 DSP 相关文章:
- TMS320C6678 DSP的电源设计(08-06)
- TMS320C6678 DSP的电源设计(08-06)
- IR2110驱动电路的优化设计(03-15)
- 基于CAN通信的电源监控系统的设计(04-06)
- 浅谈LDO的压差(Dropout)和功耗(Power Dissipation)(02-07)
- TPS54350在信号处理系统中的应用(06-09)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...