F28335 DSP烧录代码到Flash并运行详解
160 浏览量
更新于2024-09-01
3
收藏 51KB PDF 举报
"F28335如何烧写代码到flash中并运行"
在了解F28335 DSP如何烧写代码到闪存并运行的过程中,我们需要掌握以下几个关键知识点:
1. **DSP复位后的起始运行地址**:当F28335 DSP复位后,它会从内存地址0x3FFFC0开始执行,这是复位向量的位置。
2. **仿真器烧写程序步骤**:通常,你需要使用命令行工具或者集成开发环境(IDE),如CCS(Code Composer Studio),按照cmd文件指定的位置将编译后的二进制代码烧写到DSP的闪存中,然后执行程序。
3. **DSP的Flash启动过程**:在硬件层面,通过设置GPIO84~87为高电平来选择Flash启动。复位后,DSP从0x3FFFC0的复位向量跳转到InitBoot函数,该函数检查GPIO状态,确认启动模式为Flash。接着,程序跳转到0x33FFF6处执行。在cmd文件中,指定初始代码开始位置,如PAGE0:BEGIN,这通常包含一个跳转指令,跳转到_c_int00,进一步调用main函数。
4. **F28335烧写代码到Flash并运行**:首先,确保使用正确的cmd文件,例如F28335.cmd,该文件定义了内存分配和代码段的位置。然后,可以参考示例项目,如flash_f28335,进行烧录操作。通常,这涉及到编译、生成二进制文件,以及使用像CCS这样的IDE的烧录工具,将代码烧写到指定的Flash地址。
5. **代码在RAM与Flash中的运行差异**:如果代码在RAM中能正常运行,但在Flash中函数DSP28x_usDelay()出现问题,可能是因为该函数依赖于特定的硬件定时器或者中断服务,而这些在Flash启动模式下可能配置或初始化不同。需要检查相关时钟设置、中断处理和优化选项。
6. **CMD文件中的代码解释**:CMD文件用于配置链接器,决定程序的内存布局。例如,`MEMORY {PAGE0:...}`定义了页0的内存区域,`SECTIONS {...}`指定了代码、数据等各部分应加载到内存的哪个位置。
7. **将函数放入RAM中运行**:若要将函数放到RAM中运行,需要在源代码中明确指定该函数的存储类,如`__ramfunc`。此外,需要在cmd文件中为RAM分配空间,并确保链接器知道该函数应放置的区域。
理解以上知识点后,开发者可以成功地将程序烧写到F28335的Flash中并实现正常运行。需要注意的是,对于特定问题如DSP28x_usDelay()的异常,可能需要查看具体的代码实现和启动配置,以确定问题的根源。
2020-01-02 上传
132 浏览量
2010-03-06 上传
2012-02-06 上传
2011-04-19 上传
2011-06-28 上传
2012-12-27 上传
weixin_38625559
- 粉丝: 2
- 资源: 949
最新资源
- Haskell编写的C-Minus编译器针对TM架构实现
- 水电模拟工具HydroElectric开发使用Matlab
- Vue与antd结合的后台管理系统分模块打包技术解析
- 微信小游戏开发新框架:SFramework_LayaAir
- AFO算法与GA/PSO在多式联运路径优化中的应用研究
- MapleLeaflet:Ruby中构建Leaflet.js地图的简易工具
- FontForge安装包下载指南
- 个人博客系统开发:设计、安全与管理功能解析
- SmartWiki-AmazeUI风格:自定义Markdown Wiki系统
- USB虚拟串口驱动助力刻字机高效运行
- 加拿大早期种子投资通用条款清单详解
- SSM与Layui结合的汽车租赁系统
- 探索混沌与精英引导结合的鲸鱼优化算法
- Scala教程详解:代码实例与实践操作指南
- Rails 4.0+ 资产管道集成 Handlebars.js 实例解析
- Python实现Spark计算矩阵向量的余弦相似度