历史上的今天
返回首页

历史上的今天

今天是:2025年07月22日(星期二)

正在发生

2021年07月22日 | MC9S12XS128MAL Bootloader(1)

2021-07-22 来源:eefocus

首先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;  //  

推荐阅读

史海拾趣

BETA Transformer Technology Corp公司的发展小趣事

BETA Transformer Technology Corp公司在成立初期就凭借其创新性的变压器技术,在电子行业中崭露头角。公司研发团队不断突破传统变压器的设计局限,推出了一系列高效、稳定的变压器产品,赢得了客户的广泛认可。随着市场需求的不断增长,BETA公司逐渐扩大了生产规模,提高了产能,成为行业内的领军企业。

Electronicon Kondensatoren GmbH公司的发展小趣事

1976年,ELECTRONICON推出了采用金属化聚丙烯薄膜的电容器系列,这一创新技术为电容器行业带来了显著的空间和成本优势,进一步巩固了其在市场上的领先地位。随着技术的不断进步,ELECTRONICON的产品逐渐拓展至照明、电机和电力电子等多个领域。

APLUS Products公司的发展小趣事

APLUS Products公司起源于XXXX年,当时电子行业正处于飞速发展的黄金时期。公司创始人凭借对电子技术的深厚理解和市场需求的敏锐洞察,决定专注于研发和生产高质量的电子产品。初期,公司面临着资金短缺、技术难题和市场竞争等多重挑战。然而,通过不断的技术创新和产品优化,APLUS逐渐在市场中崭露头角。

Greenconn Corp公司的发展小趣事
首先观察冰箱内灯是否亮起,如果灯不亮,可能是断电保护电路故障。此外,还可以使用万用表测量继电器和定时器是否工作正常,以及检查线路连接是否牢固。
DEVCON公司的发展小趣事

在1950年代,电子工业正处于蓬勃发展的初期。阿尔·克瑞顿,一位富有创新精神的化学家,在美国马萨诸塞州丹佛斯市的一个实验室里,经过无数次的试验,终于研发出了一种名为Devcon可塑钢修补剂的新型材料。这种材料经济实惠、不易燃,且能够作为焊接的替代品,迅速在电子制造和维修领域引起了广泛关注。这就是DEVCON公司的起点,一个由创新精神和市场需求共同点燃的火花。

ET Enterprises Ltd公司的发展小趣事

近年来,ET Enterprises Ltd公司经历了一系列的收购和战略合作。这些举措不仅进一步增强了公司的实力和市场地位,也为公司的未来发展注入了新的活力。例如,公司成为得克萨斯州Ludlum Measurements Inc.的子公司后,受益于美国光电倍增管生产商ADIT的生产设施和ET Enterprises的开发设施的综合资源,为公司的持续发展提供了有力支持。

以上五个故事概述了ET Enterprises Ltd公司的发展历程和关键阶段,展示了公司在电子行业中不断崛起和持续发展的过程。

问答坊 | AI 解惑

发点CH451芯片控制的代码,详细讲解,正规代码!!!!

FPGA应用于很多场合。比如通信,验证,接口控制。 接口比较多,相对多个PLD来说,成本和速度节省。 CH451资料比较多,上网可以下载。 具体分析下怎么用FPGA写这些控制。 :D :D 第一个阅读器件,了解器件初始化过程,以及显示数据具体过程。也 ...…

查看全部问答>

民用监控误区:PC/嵌入式DVR如何选择?

◆选购安防监控录像系统的误区     目前民用级安防监控主要是来源一些小规模的商业需求,相比一些大规模的安防工程,对于监控的线路基本维持在8路以内,自己购买设备便可以进行调试安装。     目前这类民用级监控系统的选 ...…

查看全部问答>

有谁知道哪里能定制电机呢

有谁知道哪里能定制电机呢??需要BLDC,24V,3A电流,功率72W,额定转速8000~1WRPM,最大转矩0.07Nm。电机伸出轴长需要80mm。轴直径不小于5mm。带霍尔,1.5m导线。…

查看全部问答>

wince 6.0 比 5.0的优越之处

相信有高手已经在做wince6.0了,想请问下,它比5.0有啥明显的好处? 增加了啥功能?有没有增加D3DM驱动? 开发效率驱动调试方面有啥提高?…

查看全部问答>

KEIL汇编中单步调试中如何看一个ram的值(求救)

比如 data_led equ 60h .... loop: mov data_led,a inc a jmp loop ... 如何看data_led的变化?在那个窗口可以观察到? 是用那个memeny window吗 那个好像是看rom的窗口 不知道是不是 因为我用那个窗口试过,在0x60h单元中的值总是不会变 ...…

查看全部问答>

请教ADS调试ARM的问题,不知道如何入门。。

如题。 正在学习ARM的开发,采用的是ARM920T的内核。为了进一步熟悉其架构,现想先进行一些简单的开发,比如用汇编调试一下MOV等指令,看看内部寄存器的变化情况,选用JTAG仿真器和AXD进行调试。这个应该算是最简单的入门吧? 现在的问题是,我用 ...…

查看全部问答>

万利的199的板子到哪儿买?直接找万利吗?

                                  …

查看全部问答>

听说stm32每一个芯片只有一个全球唯一的ID

                                 上次在研讨会上,ST公司的专家说的,有没有人知道怎么读出这个ID。…

查看全部问答>

coreislocked-up

具体情况为: 1、我的ICF文件如下: define symbol __ICFEDIT_intvec_start__ = 0x08000000; define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; define symbol __ICFEDIT_region_ROM_end__   = 0x0807FFFF; def ...…

查看全部问答>