dsp281x变量地址数组定位方法
<br />void FlashObj::ChipErase(void)<br />{<br /> Busy = true;<br /> FLASH = 0xaa; <br /> FLASH = 0x55; <br /> FLASH = 0x80;<br /> FLASH = 0xaa; <br /> FLASH = 0x55; <br /> FLASH = 0x10;<br /> Wait(FLASH);<br /> Busy = false;<br />}<br /><br />在函数ChipErase中,Flash变量地址0x85555是用FLASH表达的.<br />这样用数组寻址比较直观~~~<br /><br />实现方法如下:<br /><br />1.在CMD文件中<br /><br />MEMORY<br />{<br />PAGE 0: /* Program Memory */<br /><br />PAGE 1: /* Data Memory */<br /> ERAM : origin = 0x100000, length = 0x04000<br /> EFLASH : origin = 0x080000, length = 0x10000<br />}<br /><br />SECTIONS<br />{<br /> ERamRegsFile : > ERAM, PAGE = 1<br /> EFlashRegsFile : > EFLASH, PAGE = 1<br />}<br /><br />2.在C/C++文件中<br />#pragma DATA_SECTION("ERamRegsFile") <br />volatile unsigned int RAM;<br /><br />#pragma DATA_SECTION("EFlashRegsFile") <br />volatile unsigned int FLASH;<br /><br />3.在应用程序中<br />extern unsigned int RAM[];<br />extern unsigned int FLASH[];<br />转载请注明出自DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 http://www.hellodsp.com/bbs/,本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=9372<br /><br /><br /><br />搞不明白楼主把我的帖子乱发
请教下大叔
hotpower大叔,见你之前对DSPbios研究了一番,想请教下要在2812的项目上<br />跑上BIOS,基本的过程给指点一下。配置工具也学了段时间了,例子程序也<br />跑了下,下一步是结合自己的项目,加上BIOS。谢谢先DSPbios和一般的OS雷同,要注意它和裸奔的不同
DSPbios确实不错,但也有很多不足,但比裸奔优雅的多~~~<br /><br />但是TI的DSPbios例程一般般,好像是个不会OS的在编写DSPbios的应用,<br /><br />真是糟蹋了DSPbios~~~<br /><br />学好DSPbios只需掌握硬件中断,软件中断,任务,消息,邮箱,队列等等。<br /><br />任务是重点,特别是优先级的安排,还有要具有“团队协作精神”,要注意<br /><br />适当的时候把控制权交换OS.<br /><br />DSPbios的设置等很方便,不用真可惜~~~还是大叔热情
大叔提的那些也都基本了解了,下一步就是针对程序,加到BIOS里了,不知道路还有多远。。。<br />要是有针对项目来做BIOS的例子就好办多了,确实自带的例子就是操作几个模块,没啥。。<br />BIOS和裸机的程序不知道还要改变多少,难道要大变脸,还是就HWI,SWI,TSK……那调几个函数,后在MAIN那来回跑,来回查找优先级高的任务。。晕CSL
2812的外设CSL没有带,大家的BIOS都是怎样用的那。自己搞时间来不急。我程序里几乎所有的外设都用了。晕!2812不带CSL,还是自己做吧,裸奔里的方法很多
我在5402里用BIOS也没加CSL一样用,思路清晰些。<br /><br />我喜欢用C++,这样每个硬件模块都可以封装带一个类中,即可代替CSL.
页:
[1]