打印

各位版主,各位DSP大神,能不能帮忙找一个6472多核demo???

[复制链接]
楼主: lelee007
手机看帖
扫描二维码
随时随地手机跟帖
21
lelee007|  楼主 | 2013-6-12 07:49 | 只看该作者 回帖奖励 |倒序浏览
晕,大版主不知道最近忙啥,好久不见了

下面我来继续以下6472引导加载的理解吧

使用特权

评论回复
22
原野牧歌| | 2013-6-18 11:09 | 只看该作者
专心听课,翻页后发现空白了?正在等候下回分解呢……

使用特权

评论回复
23
blacksword| | 2013-6-20 10:37 | 只看该作者
让各位兄台及妹纸等久了

话说CPU的发展从当初的一皇盖天,经过一段时间发展变成了群雄逐鹿。
介个世界上出现了各种CPU
从架构上分,有什么哈佛结构,还有冯老爷们
从指令集分,有什么谢屎克(CISC),还有热屎克(RISC)
从用途来分,有什么爱屁油(APU,应用处理器)、还有抵死屁(DSP)
从核心实现来看,有胳膊(ARM),有叉八溜(X86),还有米皮丝(MIPS)

蛋是,话说这个西皮柚,不管是谁家出的,不管是谁设计的核心、也不管它采用了什么架构,统统地地有一样。大家都一样。
那就是遵循了我们前面所说的启动流程。

那就是CPU一定会到某一个指定的地址上开始执行,我们平时看到的从U盘启、从硬盘启神马的,统统是个屁。
那是因为CPU已经从内部某个固件地址上启动完了,介个U盘硬盘都是拾固件的牙惠才出现在CPU面前的。

因为只有CPU不设计成从某一个固定的地址启动,那么每一次启动它就可能从任意地址上启动。那么结果就是你不知道把程序放在哪里它才能启动。

使用特权

评论回复
24
blacksword| | 2013-6-20 11:03 | 只看该作者
话说在消费用CPU市场,从前的某一段时间上演的是三国志。(别问我什么叫消费市场,怎么来消费市场,小心我用老罗的语言回答你!)
无数个世纪以来,在消费用CPU星球上,鹰头儿(Intel)国是大陆上最大的国家,艾美地(AMD)是千年的老二,还有个小不点国家叫维尔艾(VIA)。在本世纪初的时候,因被逐步蚕食,维尔艾终于从大陆上的国家名单中消失了。于是大陆上只剩下两个国家上演双龙记。

在维尔艾灭国之时,艾美地国国王深感不安,非常的担心会走上维尔艾的老路。于是乎发粪了!
在提速升军队核桃火**发速度(主频)方面艾美地国确实感到搞不过鹰头儿国。艾美地国国王决定转换思路!
经过一段时间的科技强军,艾美地国成功地研发现双管核桃火**。这一下子打得鹰头儿国快懵了!
经过几大战役的教训,鹰头儿国终于从开始对双管核桃火**的不屑中醒悟过来。
于是双管核桃火**乃至多管核桃火**开始在消费用CPU星球上流行开来。

再后来星际风,将消费CPU星球的消息带到了其他星球,什么双什么多的就在各个星球上广泛传开了。

后来就是TI发明了双核DSP。

但情况与双核X86CPU不同的是,X86由于操作系统只把持在那么少数的几家厂商手中。用户也不需要为机器设计什么操作系统,买回来就用。开发者也一样,开发者只需要安心的写自己的应用程序即可。

在双核DSP时代,由于为了最简化产品的软硬件设计以便能帮老板多挣点,开发者仍然需要从头管着DSP的整个应用加载流程。
TI在固件中为大家准备好了一颗内核的启动管理工作,让大家很方便的从FLASH还是SD卡什么的启动。
但是另一颗核心,TI只是告诉广大的开发者,它就在那里,你想怎么用都行。

使用特权

评论回复
25
blacksword| | 2013-6-20 11:12 | 只看该作者
本帖最后由 blacksword 于 2013-6-20 11:14 编辑

其实怎么用都行的意思就是,硬件给你了,软件嘛,我甩手不管了。

那我们总得把这颗核心用上吧。

好在TI没有把这颗核心完全的孤立开来,他与主核心之间还有那么一点点的联系。
联系一,第二核心可以从内存启动,但是第一核心可以决定它起始地址
联系二,第二核心的启动与否,可以由第一核心通过对片内的内部信号来决定。
联系三,第一核心与第二核心这间有中断线,可以互相发中断

那么联系我们前面说的启动的意思,结合这几点联系。
显然我们发现:
一、我们不能通过跳使得第二核心从FLASH什么启动,但是它可以直接从内存某一个地址上开始执行程序
二、第二核心在内存上执行程序的起始地址是可以由第一核心决定的。

那么我们就可以据此认为,第一核心中可以实现一个程序并由此程序来充当第二核心的启动引导器。
即,由第一核心将第二核心需要运行的程序复制到相应的内存后,并为第二核心指定正确的起始地址,即可通过内部信号来启动第二核心。

显然解决了这一步,第二核心已经可以启动了。



显然再有问题就只能是这两个核心如果分工并互相通气了!(这点以后再讲)

使用特权

评论回复
26
lelee007|  楼主 | 2013-6-21 14:51 | 只看该作者
理是这个理啊,但是我照着6472的手册里边配了boot addr,然后写了boot complete寄存器的位域,0核以外的核没跑起来啊

其他核要跑的程序和0号核是同一个映像,只是主函数里边有核号判断,初始化的只让0核执行

这个代码用仿真器单独调每个核,功能都和预期一样

然后里边增加了让0号核将0核自己的L2 sram里边的内容全部copy到其他核L2 sram中去的代码,

然后其他核的boot addr我试过配c_int0和main,但是都跑不起来嘞,晕了

使用特权

评论回复
27
lelee007|  楼主 | 2013-6-21 15:14 | 只看该作者
栈指针的初始化应该是在c_int0进去之后,跑到main之前配的吧,如果是这样的话,我的逻辑应该是正确的吧

那12345核应该是可以跑到main里边来的啊

当然,前提是从c_int00到main之间,所有运行过程的代码都在L2 sram里边,没跳到其他介质中去运行,这个过程我不知道哪儿有源码,所以这个过程不是太确定

或者说,正确的入口应该是其他的,而非c_int?还请大版明示啊

使用特权

评论回复
28
lelee007|  楼主 | 2013-6-22 18:41 | 只看该作者

使用特权

评论回复
29
biechedan| | 2013-6-22 22:58 | 只看该作者
好东西,要顶起来的!

使用特权

评论回复
30
u880| | 2013-6-23 23:39 | 只看该作者
解决了吗

使用特权

评论回复
31
huigoushang| | 2013-6-24 00:00 | 只看该作者
各位都是高手,跟各位学习了

使用特权

评论回复
32
G21372| | 2013-6-24 00:10 | 只看该作者
版主好强悍啊

使用特权

评论回复
33
yangguangaisha| | 2013-6-24 00:45 | 只看该作者
值得学习的帖子

使用特权

评论回复
34
gexingyouxian| | 2013-6-24 00:50 | 只看该作者
学习学习

使用特权

评论回复
35
acer4736| | 2013-6-24 23:28 | 只看该作者
学习了

使用特权

评论回复
36
jinpaidianzi| | 2013-6-24 23:52 | 只看该作者
支持版主

使用特权

评论回复
37
teabottle| | 2013-6-25 00:01 | 只看该作者
学习学习

使用特权

评论回复
38
wangjinlili| | 2013-6-25 00:51 | 只看该作者
进来学习的

使用特权

评论回复
39
blacksword| | 2013-7-5 14:10 | 只看该作者
现在已经被TI给开了,已经不再是版主了。

使用特权

评论回复
40
blacksword| | 2013-7-5 14:12 | 只看该作者
现在是初级工程师了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则