飞思卡尔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相关推荐

  1. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  2. 斐讯k1路由器刷Breed BootLoader(不死UBoot)

    前段时间斐讯搞活动,我入手了一部139元的斐讯K1路由器,感觉硬件配置不错,于是就给K1路由器刷入了Breed启动程序. 路由器外观: 路由器内观: 硬件配置: CPU:MediaTek MT7620 ...

  3. [Freescale]E9学习笔记-LTIB总结

    转自:http://blog.csdn.net/wl_haanel/article/details/6231353 写在前面         符号'##'后面语句均为注释         需要做的操作 ...

  4. Feescale MX31 bootloader Program : HAB Toolkit

    转自:http://www.pkblogs.com/realchecko/ Feescale MX31 bootloader Program : HAB Toolkit MX31 內含一個ROM,bo ...

  5. freescale S12X微控制器 模拟EEPROM 快速上手指南

    嵌入式开发中常有存储一些下电后不丢失的数据的需求,RAM访问起来很方便,但是下电后数据会丢失,而MC9S12XE提供了D-Flash和EEPROM用于存储非易失性数据.之前一直只是知道这个东西,但是一 ...

  6. NXP bootloader

    简介: 本文介绍如何使用NXP官方提供的bootloader,以及踩坑的过程. 名词解释: MCU boot:NXP官方提供了一个bootloader,具备一些基础的功能 app:applicatio ...

  7. BootLoader 介绍 与 uboot 简介

    1 BootLoader 的介绍 1.1 BootLoader 的概念 BootLoader 的引入 如果它 能将噪作系统内核复制到内存中运行,无论从本地[比如Fh)还是从远端(比如通过网络), Bo ...

  8. S32Kxxx bootloader之CAN bootloader

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  9. 一文看懂汽车电子ECU bootloader工作原理及开发要点

    随着半导体技术的不断进步(按照摩尔定律),MCU内部集成的逻辑功能外设越来越多,存储器也越来越大.消费者对于汽车节能(经济和法规对排放的要求)型.舒适性.互联性.安全性(功能安全和信息安全)的要求越来 ...

最新文章

  1. java双等号和equals_Java中的 equals和双等号,你懂吗?
  2. Spring 体系常用项目一览
  3. pack()函数中类型对应的符号标记
  4. php有哪些屏蔽错误的方法,php常见的错误类型及屏蔽方法
  5. 学习Python必须具备的五大技能!
  6. Spring系列(六):@Conditional注解用法介绍
  7. Java加密与解密的艺术~AES-GCM-NoPadding实现
  8. 三重框架构建和威胁情报及时可达,山石网科发布StoneOS 5.5R9
  9. Atitit 信用管理概论 attilax学习心得
  10. 微言Netty:分布式服务框架
  11. python 爬取直播_python 斗鱼直播间爬取代码
  12. 电视购物直播系统是如何运行的?视频直播流媒体服务器购物直播应用案例
  13. html如何设置本地链接,本地连接受限制或无连接【方法|图文教程】-太平洋IT百科...
  14. Problem A. Alarm Clock
  15. java中类名指的是什么_JAVA 类名.class是什么意思?
  16. [基础算法] 并查集
  17. Others2_谈谈个人常用的软件
  18. GNSS/IMU紧耦合学习笔记之卫星数据处理
  19. 2018年最好的软件开发、云计算、大数据分析和机器学习工具
  20. C语言:判断是否是直角三角形

热门文章

  1. Jetty9.2.X 迁移 9.4.X 记录
  2. (附源码)springboot高校党建信息管理系统 毕业设计 051541
  3. 两种主流软件测试方法
  4. “动态规划算法”那些事儿
  5. 惜时间_珍惜时间的句子
  6. 基于MATLAB的COST231 Hata信道模型的仿真与理论分析
  7. 一个让人感伤又温馨的计算机故事(转)
  8. indeed秋招笔试第一场
  9. 全球与中国非晶磁芯市场现状及未来发展趋势
  10. 示例演示!使用Aspose在Java中将PDF转换为SVG格式