TMS320F28335启动过程

news/2024/6/1 20:48:05 标签: TMS320F28335, 启动过程, BOOT, DSP

F28335上电复位后会首先进入复位中断的服务函数的地址。

BROM中断向量表地址是0x3FFFC0-0x3FFFFF,其中0x3FFFC0处保存的就是复位中断跳转的程序地址。

Boot ROM(BROM) 是固化在DSP 只读Flash里的一段程序,其地址是0x3FE000-0x3FFFFF,BROM Vector就是其中的一部分,上面也可以看出BROM保存的内容,如Bootload、版本号、复位中断向量、错误中断向量、测试中断向量、Iqmath计算表、FPU计算表。复位后即PC指向复位中断向量里的地址。

0x3FFFC0处的ISR是跳转到InitBoot程序(保存在BROM中),该程序会首先检查GPIO84-87的引脚状态,然后根据其选择BOOT模式。

这里以常见的Flash启动和SRAM启动为例

BOOT模式为Flash启动时,PC=0x33FFF6;当BOOT模式为SARAM启动时,PC=0x000000;

首先假设Boot模式是Flash启动时

由官方提供的CMD文件可知0x33FFF6-0x33FFF7保存的是我们BEGIN段程序

该BEGIN段只有2*16Bit 即只有2个字的代码,该代码就是codestart程序(上图)

可以看到codestart就一句条件跳转的代码,刚好占用两个字。没关看门狗就去关看门狗,关了看门狗就去执行_c_int00程序。

可以看到关完看门狗后,还是会跳转到_c_int00程序。

c_int00 是rts2800_ml.lib中的一个重要函数,TI c2000编译器默认会将rts2800_ml.lib加入编译。

c_int00主要干了以下事情

初始化了C语言的运行环境,并且跳转到main函数开始运行C程序。

再假设Boot模式是SRAM启动时,PC=0x000000

可以看到此时CMD文件BEGIN段被保存在了0x000000,,BEGIN里的codestrat还是一个占用2个字的条件跳转,之后运行c_int00。

这里多说一句,可以BOOTMODE固定选择从FLASH启动,但是通过更改CMD文件达到选择SRAM、FLASH运行程序。

假设BOOTMODE选择从FLASH启动,但是选择SRAM启动的CMD文件

0x33FF80+0x000076=0x33FFF6 Size:0x000002

0x33FFF6就是FLASH启动的地址,可以看到FLASH启动跳转代码没有被擦除,因此选择SRAM启动的CMD文件依旧可以从FLASH启动。但是反过就不行了,即CMD选flash,bootmode选SRAM,因为SRAM掉电丢失数据,即BEGIN段的codestart程序丢失了。


http://www.niftyadmin.cn/n/4849.html

相关文章

生命周期函数

1.生命周期函数 1.1 16版本及以前的 初始化constructor -->将要渲染componentWillMount --->已经渲染componentDidMount --->组件接受传递数据componentWillReceiveProps ----> 是否要更新(shouldComponentUpdate) ---->将要更新compone…

js获取对象值得方式(在不确定对象参数的情况下获取值)

1、通过.获取对象 let stu {name:"张三",age:18} // 获取name值 let name stu.name;2、通过[]获取 let stu {name:"张三",age:18} // 获取name值 let name stu["name"];3、不确定具体的参数去获取值 let stu {name:"张三",age…

【毕业设计】深度学习水果识别系统 - python CNN

文章目录1 前言2 开发简介3 识别原理3.1 传统图像识别原理3.2 深度学习水果识别4 数据集5 部分关键代码5.1 处理训练集的数据结构5.2 模型网络结构5.3 训练模型6 识别效果7 最后1 前言 🔥 Hi,大家好,这里是丹成学长的毕设系列文章&#xff0…

Linux:磁盘情况查询+磁盘情况的工作使用指令(内含使用实例)

磁盘情况查询 df -h :查询指定目录磁盘占用情况,默认为当前目录: du -h --max-depth1 /opt : 子目录深度,不含a 注:此时几个加起来并不等于/opt,因为还有STM32,VM.tar没有列出来。 du -ha --max…

关于Mysql数据库的停止服务修复及修复成功后的导入问题

目录 数据库莫名出现报错:服务器启动失败 报错解决方案 第一步 第二步 第三步 第四步 第五步 第六步 第七步 第八步 关于.sql文件的导入步骤 第一步 第二步 第三步 第四步 第五步 第六步 数据库莫名出现报错:服务器启动失败 今天…

Linux的介绍与应用

体系结构主要分为用户态的内核态。所谓内核本质上是一段管理计算机硬件设备的程序。所谓用户态上层应用程序的活动空间。内核必须为上层应用提供资源,CPU,存储,IO资源,这被称为系统调用,系统调用是不能被简化的操作&am…

库存管理软件测评结果大公开!秦丝、管家婆、商陆花哪家强。

市面上的库存管理软件那么多,一个个去试要花费很多精力,最好的运气是一眼相中。 一个好的库存管理软件,至少包括以下特点: 采购管理:主要包括采购订单、采购单、退货管理三类。可向供货商通过邮件、微信等方式下单;对采购的正式发…