2025 / 02 / 13
RZ Loader APP工程修改方法

一、使用场

客户在使用N2L做多协议产品时,在不同的产品上,需要同时将几种协议的程序烧录进flash中,然后通过不同的拨码或功能码配置来选择加载不同协议,此种情况下,就需要使用bootloader做程序的引导选择功能。此时则需要将产品代码分成2个工程,即一个bootloader工程,一个application工程,bootloader工程里做不同协议的选择,加载功能,根据需求加载不同协议运行。


由于RZ工程正常启动时,代码分成LDR部分和user部分,所以bootloader可以分别对application以上2部分进行加载,在bootloader工程里里复制application的  LDR部分到BTCM里运行,由于LDR程序里有根据user代码、数据的起始地址和长度定义,从flash区拷贝到RAM区运行的代码,所以只要LDR程序运行起来,代码则可以自动完成user程序的加载运行。

二、加了bootloader后的启动流程


步骤解析:

1.芯片内部boot根据loader Parameters加载bootloader的LDR代码到BTCM的0x102000地址区。

2.bootloader的LDR程序运行后,会根据icf文件的配置从flash区加载bootloader的user代码(包括data段,prg段,rodata段等)到ATCM运行。

3.Bootloader的user里需要添加代码来搬移application的LDR到BTCM运行。

4.Application的LDR运行后,会根据application的icf文件配置加载application的user代码,并运行整个程序。


注: 

1.Bootloader程序和application是2个独立的工程。

2.loader Parameters只配置bootloader工程的就可以,application是通过bootloader加载的,所以不需要更改此参数。

3.bootloader和application的LDR部分复用BTCM的0x102000地址空间。

4.由于本来是一次启动加载的过程,现在是启了2次,在startup文件开头的特权模式下的操作不能重复进行,否则会报错,所以在application工程中要屏蔽掉此部分代码

三、bootloader工程修改过程


1.确定要加载的几个不同程序的FLASH地址。

2.使用FSP工具配置一个工程。

3.增加copy application的代码和跳转代码。

四、App修改点


icf在原有独立工程基础上按设置的FLASH地址做偏移,所有flash的配置都要加对应的偏移,图示以EIP为例。


Startup.c里system_init中屏蔽掉对特权模式的操作。


调试时要注意bootloader和application里几个MPU_REGION的设置保持一致。

隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。