news 2026/5/20 3:14:56

【普中DSP28335开发攻略】-- 第 31 章 FLASH 实验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【普中DSP28335开发攻略】-- 第 31 章 FLASH 实验

(1)实验平台:普中DSP28335开发板


在前面章节那些实验我们都是将程序烧写到芯片 RAM 中运行调试的, 我们知道 RAM 中存储的东西在掉电后是会丢失的, 也就是说程序烧入到 RAM 中运行, 如果系统电源关闭后再开启, 之前下载的程序是不会再运行的。 如果我们做好的产品给客户不可能还让客户像我们这样使用 DSP 仿真器去烧录程序运行, 所以非常有必要学习如何将程序烧入到芯片 FLASH 中, 这样即使掉电也不会丢失。 本章就来介绍如何将程序烧入到芯片 FLASH 中。 本章所要实现的功能是: 在串口通信实验程序基础上改成 FLASH 模式, 在定时器 0 中断中控制 D1 指示灯间隔 200ms 闪烁。 本章分为如下几部分内容:

31.1 配置成 FLASH 模式步骤

31.2 硬件设计

31.3 软件设计

31.3.1 主函数

31.4 实验现象


31.1 配置成 FLASH 模式步骤

①将前面定时器实验章节的程序“Example24_DSP2833x_SCI_echoback” 复制一份, 重新命名为“Example43_DSP2833x_Flash_led” 。 如下:

②打开 CCS 软件, 导入工程“Example43_DSP2833x_Flash_led” , 并将 CCS软件工程名修改为实验名称, 这个在最开始实验章节就有介绍。 如下所示:

③将工程目录“DSP2833x_Libraries” 下的 28335_RAM_lnk.cmd 删除, 然后从 TI 提供 给我 们的 库文件 中把 “ F28335.cmd” 拷贝 到现 在实 验文件 夹“DSP2833x_Libraries” 目录下。 如下:

在工程目录下自动将“F28335.cmd” 文件更新进来, 如下:

该文件是对 FLASH 模式的配置, TI 公司已经给我们配置好了, 一般我们不需要更改。

④在 main 函数开始处添加 FLASH 模式配置的必须代码, 如下:

//复制对时间敏感代码和 FLASH 配置代码到 RAM 中 // 包括 FLASH 初始化函数 InitFlash(); // 链 接 后 将 产 生 RamfuncsLoadStart, RamfuncsLoadEnd, 和 RamfuncsRunStart // 参数. 请参考 F28335.cmd 文件 MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); // 调用 FLASH 初始化函数来设置 flash 等待状态 // 这个函数必须在 RAM 中运行 InitFlash();

上述两条语句是在使用 FLASH 模式必要的, 通过这两条语句以及 F28335.cmd文件即可将程序烧入到芯片的 FLASH 中, 这样程序断电后也不会丢失。

至此, 我们就介绍完了如何将 RAM 调试程序修改成 FLASH 程序, 大家只要按照上述步骤完成即可, 重点是第 3、 4 步。

31.2 硬件设计

本实验使用到硬件资源如下:

(1) D1 指示灯

(2) TIM0

(3) RS232 模块

LED 灯、 RS232 模块电路在前面章节已介绍, 这里就不多说, 至于 TIM0 它是F28335 芯片内部外设资源, 只需通过软件配置即可使用。

31.3 软件设计

31.3.1 主函数

其他代码与串口通信实验一样, 只是在 main 函数开始处增加了 FLASH 初始化代码, main 函数代码如下:

#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h" // DSP2833x Examples Include File #include "leds.h" #include "time.h" #include "uart.h" #include "stdio.h" /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main() { Uint16 i=0; InitSysCtrl(); InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); //复制对时间敏感代码和FLASH配置代码到RAM中 // 包括FLASH初始化函数 InitFlash(); // 链接后将产生 RamfuncsLoadStart, RamfuncsLoadEnd, 和RamfuncsRunStart // 参数. 请参考 F28335.cmd 文件 MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); // 调用FLASH初始化函数来设置flash等待状态 // 这个函数必须在RAM中运行 InitFlash(); LED_Init(); TIM0_Init(150,200000);//200ms UARTa_Init(4800); while(1) { } }

31.4 实验现象

使用仿真器将开发板和电脑连接成功后, 把编写好的程序编译后, 如果没有报错即可将点击仿真调试, 程序即会写入到芯片的 FLASH 内, 运行结果是: D1指示灯间隔 200ms 闪烁。 当系统断电后再打开, 程序仍然会运行, 因为我们已经将程序烧入到芯片内 FLASH 中。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/19 6:10:04

企业OA系统安全防护全攻略:从基础加固到长效防御,十分钟构建坚不可摧的办公安全屏障

OA系统作为企业数字化办公的核心中枢,承载着员工信息、财务数据、业务流程、商业机密等关键资产,是企业生产经营的“神经中枢”。随着数字化办公的深度普及,OA系统已成为网络攻击的重点目标——从弱密码爆破、漏洞利用到钓鱼攻击、内部泄密&a…

作者头像 李华
网站建设 2026/5/16 3:50:25

数字取证之浏览器取证:技术体系、实操方法与实战要点

浏览器作为用户网络行为的核心载体,记录了访问轨迹、数据交互、账户信息、文件操作等全维度行为痕迹,是数字取证中电子数据固定与分析的核心环节,广泛应用于网络犯罪调查、民事纠纷取证、企业合规审计等场景。浏览器取证的核心目标是无篡改提…

作者头像 李华
网站建设 2026/5/12 13:37:14

MaaP:5G短消息的“心脏引擎”,政企招标暗藏的决胜密码!

作者:尘客首发:5G全域通每一条消息都是奇迹的发生。3.4亿!中国移动三期工程、3.27亿!中国电信全国升级——所有5G消息招标文件里,藏着同一个关键词: MaaP读懂它,中标率提升50%;忽略它…

作者头像 李华
网站建设 2026/5/16 5:25:14

专科生必备8个降AI率工具,高效避坑指南!

专科生必备8个降AI率工具,高效避坑指南! AI降重工具:专科生论文的“隐形助手” 在当前高校教育日益重视学术规范的大背景下,越来越多的专科生开始关注论文的AIGC率和查重率问题。尤其是随着AI写作工具的普及,许多学生…

作者头像 李华
网站建设 2026/5/12 19:39:25

【读书笔记】《光环效应》

《光环效应》读书笔记 核心观点 《光环效应》揭示了一个残酷的事实:过去许多奉为经典的商业书籍,其实都只是人们的主观总结和猜测,因为它们全部被"光环效应"所笼罩。 什么是光环效应? 经典案例:乐高 vs 711 乐高的…

作者头像 李华
网站建设 2026/5/14 10:40:40

AI日报 - 2026年01月27日

#本文由AI生成 🌐 一、【行业深度】 1. 🧧 腾讯元宝双重磅落地,春节派10亿现金红包上线混元图像3.0 🔥 热点聚焦: 1月25-26日腾讯元宝接连释放两大动作,先是官宣2月1日开启新春10亿现金红包活动&#xff0c…

作者头像 李华