打印

dsp281x变量地址数组定位方法

[复制链接]
2374|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guoxuekun|  楼主 | 2008-8-29 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

void FlashObj::ChipErase(void)
{
  Busy = true;
  FLASH[0x5555] = 0xaa;  
  FLASH[0x2AAA] = 0x55;  
  FLASH[0x5555] = 0x80;
  FLASH[0x5555] = 0xaa;  
  FLASH[0x2AAA] = 0x55;  
  FLASH[0x5555] = 0x10;
  Wait(FLASH[0x5555]);
  Busy = false;
}

在函数ChipErase中,Flash变量地址0x85555是用FLASH[0x5555]表达的.
这样用数组寻址比较直观~~~

实现方法如下:

1.在CMD文件中

MEMORY
{
PAGE 0:    /* Program Memory */

PAGE 1:    /* Data Memory */
   ERAM        : origin = 0x100000, length = 0x04000
   EFLASH      : origin = 0x080000, length = 0x10000
}

SECTIONS
{
   ERamRegsFile          : > ERAM,        PAGE = 1
   EFlashRegsFile        : > EFLASH,      PAGE = 1
}

2.在C/C++文件中
#pragma DATA_SECTION("ERamRegsFile") 
volatile unsigned int RAM[0x4000];

#pragma DATA_SECTION("EFlashRegsFile") 
volatile unsigned int FLASH[0x10000];

3.在应用程序中
extern unsigned int RAM[];
extern unsigned int FLASH[];
转载请注明出自DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 http://www.hellodsp.com/bbs/,本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=9372



相关帖子

沙发
hotpower| | 2008-8-29 20:19 | 只看该作者

搞不明白楼主把我的帖子乱发

使用特权

评论回复
板凳
zhk1| | 2008-8-29 21:21 | 只看该作者

请教下大叔

hotpower大叔,见你之前对DSPbios研究了一番,想请教下要在2812的项目上
跑上BIOS,基本的过程给指点一下。配置工具也学了段时间了,例子程序也
跑了下,下一步是结合自己的项目,加上BIOS。谢谢先

使用特权

评论回复
地板
hotpower| | 2008-8-29 21:38 | 只看该作者

DSPbios和一般的OS雷同,要注意它和裸奔的不同

DSPbios确实不错,但也有很多不足,但比裸奔优雅的多~~~

但是TI的DSPbios例程一般般,好像是个不会OS的在编写DSPbios的应用,

真是糟蹋了DSPbios~~~

学好DSPbios只需掌握硬件中断,软件中断,任务,消息,邮箱,队列等等。

任务是重点,特别是优先级的安排,还有要具有“团队协作精神”,要注意

适当的时候把控制权交换OS.

DSPbios的设置等很方便,不用真可惜~~~

使用特权

评论回复
5
zhk1| | 2008-8-29 22:19 | 只看该作者

还是大叔热情

大叔提的那些也都基本了解了,下一步就是针对程序,加到BIOS里了,不知道路还有多远。。。
要是有针对项目来做BIOS的例子就好办多了,确实自带的例子就是操作几个模块,没啥。。
BIOS和裸机的程序不知道还要改变多少,难道要大变脸,还是就HWI,SWI,TSK……那调几个函数,后在MAIN那来回跑,来回查找优先级高的任务。。

使用特权

评论回复
6
zhk1| | 2008-8-30 16:40 | 只看该作者

晕CSL

2812的外设CSL没有带,大家的BIOS都是怎样用的那。自己搞时间来不急。我程序里几乎所有的外设都用了。晕!

使用特权

评论回复
7
hotpower| | 2008-8-31 09:03 | 只看该作者

2812不带CSL,还是自己做吧,裸奔里的方法很多

我在5402里用BIOS也没加CSL一样用,思路清晰些。

我喜欢用C++,这样每个硬件模块都可以封装带一个类中,即可代替CSL.

使用特权

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

本版积分规则

50

主题

53

帖子

0

粉丝