Freescale Bootloader detail for MC56F8037
飞思卡尔MC56F8037这款DSC是专门针对马达控制推出的一款高性能,高性价比DSC,为什么叫DSC呢,和DSP有何区别呢?一般的DSP只用来处理大量数据,不包含控制单元,但是这个DSC内部就集成了控制单元,因此可以称作数字信号控制器。
这款芯片的flash空间还算充裕,包含64K字节,RAM则为8K,因此用作一般的电机控制(SVPWM,DTC)等用途时flash空间应该是够了。如果再加上bootloader,可能就有些紧凑了,因此要尽可能缩小代码,简化代码,bootloader也同样如此。
如果想通过CAN或者串口下载程序,就要做个bootloader并将其烧写到flash的某个区域,其中要将flash分成三个区域,如下表所示
地址0x7B00 bootloader程序区 |
地址0x7800 bootloader缓冲区 |
地址0x0000 主程序区 |
其中bootloader缓冲区用作升级bootloader程序时,先将新的bootloader程序传送烧写到bootloader缓冲区,然后通过校验无误后将缓冲区程序拷贝烧写到bootloader程序区,这样对于升级bootloader比较安全可靠。
原理:每次启动程序从0x0000地址开始执行,然后条转到0x7B00地址执行bootloader,此时开定时器(如果在某个固定时间内串口或者CAN未收到数据就跳转到主程序区执行),如果在串口或CAN上收到数据此时识别命令标志字,看是升级主程序还是bootloader,然后到对应区进行页擦除操作(擦除命令有MASS erase整个flash擦除和page erase按页进行擦除一页512字节),然后将对应的程序烧写到对应的区域,如果是烧写主程序则在烧写完后从主程序去执行,如果是升级bootloader,那么烧写完bootloader缓冲区之后对其内容进行校验,校验成功后将缓冲区的内容拷贝烧写到bootloader程序区,烧写完后从bootloader开始执行。
烧写格式:烧写的文件为S19文件,一般经过CodeWarrior V8.3或V10.4编译后生成,内容大概包括:每行开头的S0、S3、S7,例如S31000001209876543...,意思是S3表示数据,然后紧接着一个字节为数据字节个数,然后两个字节是地址,然后就是数据,在最后一个字节是校验码。S0包含的内容V8.3编译过都相同经过ASSIC码译码理解为字符PROGRAM&DATA,S3为数据,S7为结尾不会烧到flash中不必考虑。
注意问题:烧写程序中注意大小端问题,此芯片为小端,烧写中应将字节高低字节颠倒。
具体程序的实现会在后续章节分析。
Freescale Bootloader detail for MC56F8037相关推荐
- 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 : -- u-boo ...
- 斐讯k1路由器刷Breed BootLoader(不死UBoot)
前段时间斐讯搞活动,我入手了一部139元的斐讯K1路由器,感觉硬件配置不错,于是就给K1路由器刷入了Breed启动程序. 路由器外观: 路由器内观: 硬件配置: CPU:MediaTek MT7620 ...
- [Freescale]E9学习笔记-LTIB总结
转自:http://blog.csdn.net/wl_haanel/article/details/6231353 写在前面 符号'##'后面语句均为注释 需要做的操作 ...
- Feescale MX31 bootloader Program : HAB Toolkit
转自:http://www.pkblogs.com/realchecko/ Feescale MX31 bootloader Program : HAB Toolkit MX31 內含一個ROM,bo ...
- freescale S12X微控制器 模拟EEPROM 快速上手指南
嵌入式开发中常有存储一些下电后不丢失的数据的需求,RAM访问起来很方便,但是下电后数据会丢失,而MC9S12XE提供了D-Flash和EEPROM用于存储非易失性数据.之前一直只是知道这个东西,但是一 ...
- NXP bootloader
简介: 本文介绍如何使用NXP官方提供的bootloader,以及踩坑的过程. 名词解释: MCU boot:NXP官方提供了一个bootloader,具备一些基础的功能 app:applicatio ...
- BootLoader 介绍 与 uboot 简介
1 BootLoader 的介绍 1.1 BootLoader 的概念 BootLoader 的引入 如果它 能将噪作系统内核复制到内存中运行,无论从本地[比如Fh)还是从远端(比如通过网络), Bo ...
- S32Kxxx bootloader之CAN bootloader
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 一文看懂汽车电子ECU bootloader工作原理及开发要点
随着半导体技术的不断进步(按照摩尔定律),MCU内部集成的逻辑功能外设越来越多,存储器也越来越大.消费者对于汽车节能(经济和法规对排放的要求)型.舒适性.互联性.安全性(功能安全和信息安全)的要求越来 ...
最新文章
- java双等号和equals_Java中的 equals和双等号,你懂吗?
- Spring 体系常用项目一览
- pack()函数中类型对应的符号标记
- php有哪些屏蔽错误的方法,php常见的错误类型及屏蔽方法
- 学习Python必须具备的五大技能!
- Spring系列(六):@Conditional注解用法介绍
- Java加密与解密的艺术~AES-GCM-NoPadding实现
- 三重框架构建和威胁情报及时可达,山石网科发布StoneOS 5.5R9
- Atitit 信用管理概论 attilax学习心得
- 微言Netty:分布式服务框架
- python 爬取直播_python 斗鱼直播间爬取代码
- 电视购物直播系统是如何运行的?视频直播流媒体服务器购物直播应用案例
- html如何设置本地链接,本地连接受限制或无连接【方法|图文教程】-太平洋IT百科...
- Problem A. Alarm Clock
- java中类名指的是什么_JAVA 类名.class是什么意思?
- [基础算法] 并查集
- Others2_谈谈个人常用的软件
- GNSS/IMU紧耦合学习笔记之卫星数据处理
- 2018年最好的软件开发、云计算、大数据分析和机器学习工具
- C语言:判断是否是直角三角形