MC9S12XS128MAL Bootloader(1)

发布者:omega34最新更新时间:2021-07-26 来源: eefocus关键字:Bootloader  工程 手机看文章 扫描二维码
随时随地手机看文章

首先BootLoader和用户程序是两个工程,两个工程代码通过修改PRM文件存储在不同的flash中,在通过PC指针的跳转实现两个工程的切换;


BootLoader程序


关中断

初始化时钟;

初始化CAN

初始化flash读写;

开中断,开CAN中断;

计时判断CAN是否收到bootloader开始报文;

时间到后没收到跳转到原用户程序启动向量;

收到后,开始读写flash,读写完后,PC指针跳转到用户程序地址(EEFE);


其中flash程序在读写flash时,要把代码copy到RAM中,因读写时不能再读flash中的代码


extern char __SEG_START_RAM_CODE[] ;


extern char __SEG_END_RAM_CODE[];


extern char __SEG_SIZE_RAM_CODE ;


void CopyCodeToRAM(void)


{

  memcpy((unsigned char *)0x3E00, (unsigned char *) __SEG_START_RAM_CODE,(unsigned int)  __SEG_SIZE_RAM_CODE);


}  //要写入的RAM地址0x3E00;    RAM_CODE是在prm中定义的需要复制到ram中的地址区域;


写完后再使用下代码跳转到EEFE;


_asm ldx $eefe;


_asm jmp 0,x;


Prm文件中修改如下,是代码压入指定位置:


ROM_F000      = READ_ONLY   DATA_NEAR  IBCC_NEAR 0XF000 TO   0xF5FF;


ROM_FB00      = READ_ONLY   DATA_NEAR  IBCC_NEAR 0XF600 TO   0xFDFF;


PLACEMENT


      _PRESTART,           


      STARTUP,                /* startup data structures */


      ROM_VAR,                /* constant variables */


      STRINGS,                /* string literals */


      VIRTUAL_TABLE_SEGMENT,  /* C++ virtual table segment */


      NON_BANKED,             /* runtime routines which must not be banked */


      COPY         


                      


                            INTO  ROM_F000/*, ROM_4000*/;


 


      DEFAULT_ROM       INTO    ROM_FB00;  //  

关键字:Bootloader  工程 引用地址:MC9S12XS128MAL Bootloader(1)

上一篇:MC9S12XS128 MAL BootLoader(2)
下一篇:MC9S12XEP100 IIC模块 驱动程序

推荐阅读最新更新时间:2024-10-28 11:29

stm32自己总结如何正确创建一个工程
1、建立好文件夹,文件夹中有相应的库函数和头文件等等 以上通过我的G盘里面的建立工程模板解压即可得到 2、通过keil创建test_creat.uvproj到以目录 选择完芯片以后,弹出窗口一定要选择“否” 3、添加文件,只用添加C文件进去 添加完成以后会看到: 4、头文件路径的添加 stm32f10x_it.h ,stm32f10x.h, stm32f10x_conf.h ,core_cm3.h, system_stm32f10x.h 主要添加以上的头文件位置还有各种ppp外设头文件的位置也就是src文件夹 5.编译会出现的问题及解决方法 1、去掉STM32F10X_HD,USE_STDPERIPH_
[单片机]
stm32自己总结如何正确创建一个<font color='red'>工程</font>
NI帮助工程师显著缩短5G OTA验证的RF测试时间
全新参考架构可快速、准确且经济高效地对封装天线(AiP)器件进行射频OTA验证 美国国家仪器(National Instruments,简称NI)是一家提供软件定义平台的供应商,其平台有助于加速自动化测试和自动化测量系统的开发和性能提升,该公司今日发布了硬件加速的5G毫米波OTA验证测试参考架构,可对5G 毫米波波束成形AiP器件进行全面的特性分析和验证。 与传统的点对点软件控制测试系统相比,NI的毫米波OTA验证测试参考架构可在24 GHz到44 GHz的5G毫米波频段内快速扫描OTA空间,帮助用户显著缩短AiP器件的OTA射频验证测试时间。这一全新的参考架构使得正在研究最新5G AiP器件的特性分析和验证工程师能够利用
[测试测量]
PIC24 通过USB在线升级 -- USB CDC bootloader
今年国庆完成了4个bootloader,前面介绍了2个,都是PIC32MZ的USB bootloader, 接着介绍2个PIC24 的USB bootloader, 首先是PIC24 USB CDC bootloader。PIC24 USB CDC bootloader 是我开发给我的PIC24FJ256GB106硬件板子的。 开发环境 1. IDE: MPLABX v4.01 2. Compiler: XC16, v1.11 3. Library&Example: c:/microchip_solutions_v2013-06-15/USB/Device-CDC-Basic Demo 这个PIC24 CDC
[单片机]
荣耀Magic2工程机安兔兔跑分曝光,只有24万分
集微网消息,还有不到3天的时间,荣耀年度旗舰机Magic2就要发布了,关于该机的安兔兔跑分也公布了,只有24万分,让人惊掉了下巴,它搭载的麒麟980可是在IFA2018上PPT说是吊打骁龙845,这样看来颇有吹牛的成分在里面,好在发布该成绩的安兔兔说可能是工程机没优化好的原因。 从早前安兔兔说的同样搭载麒麟980处理器的华为Mate20系列跑分大部分在30万以上的情况看,目前现身安兔兔的荣耀Magic2是工程机的说法是有道理的。 有趣的是另外一位数码博主也放出了粉丝投稿的荣耀Magic2的跑分,高达31万分,发挥麒麟980应有的水准,跟安兔兔的说法很契合,我们来了解一下荣耀Magic2。 根据工信部的页面信息显示,荣耀Mag
[手机便携]
SpaceX火箭工程师创业 称将为电动汽车充电带来火箭一般的可靠性
Electric Era 公司表示,它已经破解了快速可靠的电动汽车充电站的密码,这些充电站可以在任何需要的地方提供服务。这家由前太空探索技术公司(SpaceX)工程师创立的初创公司刚刚宣布获得由汇丰银行资产管理部门牵头的 1150 万美元 A 轮融资。气候技术基金 Blackhorn ...
[新能源]
工程师教你轻松读懂电源电路图
当初学者面对有几十乃至几百个 元器件 的电路图,并且它们的连线纵横交叉,形式变化多端,往往会不知道所措, 如何才能轻松地读懂它们呢? 其实电子电路本身有很强的规律性,不管多复杂的电路,经过分析可以发现,它是由少数几个单元电路组成的。就像小孩子们玩的积木,虽然只有十来种或二三十种块块,可是在孩子们手中却可以搭成几十乃至几百种平面图形或立体模型。同理,再复杂的电路,经过分析就可发现,它也是由少数几个单元电路组成的。因此初学者只要先熟悉常用的基本单元电路,再学会分析和分解电路的本领,就事半功倍了。 按单元电路的功能可以把它们分成若干类,每一类又有好多种,全部单元电路大概总有几百种。下面就选用最常用的基本单元电路来介绍。从 电源电路 开始
[电源管理]
<font color='red'>工程</font>师教你轻松读懂电源电路图
Linux系统下的Bootloader详解
对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫作Bootloader。在这里我们就为大家详细介绍Bootloader,Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。 对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系
[单片机]
汽车工程师可选用FPGA和完整的IP解决方案优化其电气架构设计
过去十年来,车载网络架构变得越来越复杂。虽然车载网络协议的数量有所减少,但实际部署的网络数量却有显著增加。这就提出了网络架构的可缩放性问题,并且要求为满足各种应用和网络的实际需要而优化半导体器件。 FPGA曾一度被认为是仅用于开发的解决方案,但如今其价位下降非常迅速,使得许多问题迎刃而解,甚至能以低于传统ASIC或ASSP解决方案的总体系统成本投产。现在,面向汽车市场的各大FPGA供应商均已通过ISO-TS16949认证,使得可编程逻辑器件逐渐成为汽车市场的主流技术。 车载网络电气架构   在过去十年间,很多专用的OEM汽车制造商的网络协议已经让位于CAN、MOST 和 FlexRay等更为标准化的全球协议。因
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved