DSP28335 Flash Memory笔记-1

本文详细介绍了F2833x微控制器的启动过程,包括使用GPIO确定启动方式、Flash内存的结构和速度调整、以及Flash配置寄存器的设置。特别强调了如何通过改变等待状态和启用FlashPipeline来优化性能。
摘要由CSDN通过智能技术生成

1. Start-up sequences

F2833x具有16个不同的启动方式,由四个GPIO (GPIO87,86,85,84)硬件编码,如下图所示

例如,假如需要从Flash执行代码,就可以将四个GPIO全部上拉。

具体的启动步骤如下:

  1. RESET地址0x3FFFC0,由于该地址是内部由TI定义的BOOT-ROM地址,因此复位后程序指针最先指向该地址
  2. Boot Code区:这部分会执行部分CPU初始化操作并且扫描GPIO口,由此确定系统的启动方式
  3. 如果四个GPIO口都被上拉,即状态为“1111”,那么程序会继续跳转到0x33FFF6,也即Flash的入口地址,然而该区域只有2个字的长度,因此需要在这里紧接一个跳转地址,如果是C代码编写的程序,在配置工程文件时“rts2900_ml.lib"会定义“c_int00"的地址,也就是后续要执行的C程序的启动代码
  4. “c_int00"会先进行C环境的初始化以及全局变量的初始化操作;最后"c_int00"会跳转到main函数

整个过程如下图所示:

F2833x Flash Memory的片区

内部Flash大小为256k x 16bit, 被分为8个片区,每个片区都可以独立编程。如下图所示,Flash Entry Point之前已经介绍过,Security Password在开发时一般不用,除非是为了防止逆向工程而需要认为设置密码;除此之外,Sector A的高128位地址是无法用作通用存储功能的。

Flash 速度初始化

Flash的读取速度是可以认为设定的,该速度由访问Flash片区的等待状态数目决定,在RESET后,这个等待状态数通常设置为16;而对于150MHz的F2833x,其最快可以设置为5;这样可以提升系统的实时性。

Flash是通过128个连续地址作为一个Page,因此等待状态数目也分为,Page内连续访问与Page间随机访问,分别由FBANKWAIT寄存器中的PAGEWAIT与RANDWAIT来指定,最高速度可以将二者赋值为5;此时F2833x执行一个单周期指令时的MIPS可计算为:

\frac{1 instruction}{\left( 5+1 \right) cycles\cdot 150MHz}=25MHz

同时,如果我们使能Flash Pipeline功能,也即一次读取64bit,则MIPS可以达到100,翻了四倍;默认RESET后,该功能是不开启的,需要手动置位"ENPIPE"

Flash 配置寄存器

其他的配置寄存器如下图所示,然而多数情况下RESET后的默认值就能满足要求。 TI在“DSP2833x_SysCtrl.c"文件中提供了内部Flash的初始化函数“InitFlash()",一般情况下使用该函数进行初始化配置即可

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值