七、软件设计
7.1 配置分析
7.1.1 IDE等开发环境
7.1.2 创建两个工程
7.1.3 修改link文件
7.1.4 链接elf
7.1.5 用FSP添加外设
7.1.6 输出文件格式
7.2 源码分析
7.2.1 框图
7.2.2 boot源码
7.2.3 app源码
三、从0开始卷出一个新项目之瑞萨RA6M5配置分析
七、软件设计
7.1 配置分析
7.1.1 IDE等开发环境
7.1.2 创建两个工程
使用e2sstudio创建boot+app两个带rtos的工程 注意芯片型号和编译工具 创建成功后debug运行测试
7.1.3 修改link文件
/script
fsp_boot.ld
memory_regions_boot.ld
fsp_app.ld
memory_regions_app.ld
RAM_START = 0x20000000;
RAM_LENGTH = 0x80000;
FLASH_START = 0x00000000;
FLASH_LENGTH = 0x010000;
DATA_FLASH_START = 0x08000000;
DATA_FLASH_LENGTH = 0x2000;
OPTION_SETTING_START = 0x0100A100;
OPTION_SETTING_LENGTH = 0x100;
OPTION_SETTING_S_START = 0x0100A200;
OPTION_SETTING_S_LENGTH = 0x100;
ID_CODE_START = 0x00000000;
ID_CODE_LENGTH = 0x0;
SDRAM_START = 0x90000000;
SDRAM_LENGTH = 0x0;
QSPI_FLASH_START = 0x60000000;
QSPI_FLASH_LENGTH = 0x4000000;
OSPI_DEVICE_0_START = 0x68000000;
OSPI_DEVICE_0_LENGTH = 0x8000000;
OSPI_DEVICE_1_START = 0x70000000;
OSPI_DEVICE_1_LENGTH = 0x10000000;
unsigned long Boot_Addr = 0x10000;//memory_regions_boot.ld FLASH_LENGTH
printf("\n**************************************\n");
printf( "**********JUMP TO APP:0x%lX**********\n", Boot_Addr);
printf( "**************************************\n");
//close any peripherals before do_boot
g_uart9.p_api->close(&g_uart9_ctrl);
R_FLASH_HP_Close(&g_flash0_ctrl);
//jump
do_boot(Boot_Addr);
printf("this message cant print!\n");
flash分区
7.1.4 链接elf
增加jump函数 测试debug和跳转功能
7.1.5 用FSP添加外设
boot
app
7.1.6 输出文件格式
${cross_prefix}${cross_objcopy}${cross_suffix} -O binary -j .text -j .data "${ProjName}.elf" "${ProjName}.bin" ;${cross_prefix}${cross_objcopy}${cross_suffix} -O ihex -j .text -j .data "${ProjName}.elf" "${ProjName}.hex"
7.2 源码分析
7.2.1 框图
7.2.2 boot源码
7.2.3 app源码