飞思卡尔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. 可以获取python整数类型帮助的是什么-Python 的数值类型(整数、长整数、浮点数和复数)...
  2. Ubuntu 11.04上搭建Android开发环境
  3. Batch Normalization深入理解
  4. 多表拆解 | 数据PM的工作内容
  5. 130.ssm项目中添加日志 log4j
  6. [计算机组成原理] Booth算法 —— 补码一位乘法
  7. linux tty core code,linux tty core 源码分析(7)
  8. php中isset() , unnset(), empty()函数
  9. linux php 守护进程,PHP程序员玩转Linux系列 使用supervisor实现守护进程
  10. HDFS概述和设计目标
  11. vue父子组件搭配(添加数据和删除)
  12. Golang gRPC实践 连载七 HTTP协议转换
  13. [ANE for Android]Java接口部分引用第三方JAR的解决办法
  14. ubuntu16.04安装mongodb
  15. silverlight---游戏中的人工智能之追逐与闪躲
  16. 全网首发:制作LINUX安装软件包,要处理哪些系统目录和文件(1)
  17. 微型计算机用于梯群控制时 其优点是,下列根尖周病的治疗要求中,说法不对的是A.要求无菌操作技术B.根管内应为无菌环境C.炎症渗出物应...
  18. winform打印html文件,c# 如何实现web打印插件
  19. 抓取lol全英雄图(不含皮肤)
  20. 关于进程wuauclt.exe

热门文章

  1. opensuse15.1字符界面下配置网络
  2. 新版标准日语初级上册基本课文(甲乙对话)
  3. Moment for Mac v1.3.2 中文版 – 好看的倒数日应用
  4. 编写程序,计算贷款的月支付额公式
  5. 三十岁中年大叔放弃 40W 年薪从传统行业转行 Java,全依靠这份秘籍!
  6. SAP成都研究院2018年总共87篇技术文章合集
  7. php 图片程序分离,一个图片地址分解程序,用于PHP小偷程序
  8. 【DFS反向建图记忆化搜索】UPC Contest2592 - 2020年秋季组队训练赛第十四场 问题 D: Mysterious Treasure
  9. 织梦js引入html,仿站:织梦,后台html加载jquery解析xml?
  10. 设备和服务器连接 并保存到数据库