六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化

六、loader app分离工程
6.1 概述
6.2 官方资料与不足
6.3 loader app分离工程的优化
        6.3.1 自动调节合并appsection
        6.3.2 loader中使用外设
        6.3.3 app使用sram mirror
        6.3.4 sram atcm同时使用

六、从0开始卷出一个新项目之瑞萨RZN2L loader app分离工程优化

6.1 概述

对比“3.2 base project构建”中的单个工程,本章节介绍loader app分离的双工程。可以实现更为灵活和复杂的功能,例如多协议支持、固件升级等等。

6.2 官方资料与不足

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第1张图片

  • 例程源码
    RZN2L_bsp_xspi0bootx1_app
    RZN2L_bsp_xspi0bootx1_loader

  • 文档
    r01an6737ej0110-rzn2l-separating-loader-and-application.pdf

  • 仅展示

    以官方loader app双工程为base去移植应用代码,会碰到很多问题

    六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第2张图片

6.3 loader app分离工程的优化

6.3.1 自动调节合并appsection

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第3张图片

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第4张图片

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第5张图片

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第6张图片

6.3.2 loader中使用外设

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第7张图片

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第8张图片

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第9张图片

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第10张图片

//正确完整的编译loader+app
// 1: 必须首先clean loader,构建前增加make -r -j8 clean
// 2: 使能startu的初始化mpu代码 #if 1 // Original program
    /* Invalid these settings for loader project.
    * These settings are done in the application program.
    * Settings can also be made in the loader program if necessary. */

#if 1
    __enable_irq();
    g_uart0.p_api->open(g_uart0.p_ctrl, g_uart0.p_cfg);
    g_uart0.p_api->write(g_uart0.p_ctrl, (uint8_t const *)"Loader start!\n*****\nReady to Jump to the app!\n\n", strlen("Loader start!\n*****\nReady to Jump to the app!\n\n"));
    while(!uartTxCompleteFlg);
    uartTxCompleteFlg = 0;
    g_uart0.p_api->close(g_uart0.p_ctrl);
    __disable_irq();
#endif

6.3.3 app使用sram mirror

参考fsp_xspi0_boot_SRAM_ATCM.ld

6.3.4 sram atcm同时使用

  • 参考fsp_xspi0_boot_SRAM_ATCM.ld

  • 在loader中复制atcm和sram

六、从0开始卷出一个新项目瑞萨RZN2L之loader app分离工程优化_第11张图片

你可能感兴趣的:(瑞萨,rzn2l,工业以太网,EtherCAT,PROFINET,分布式io,伺服电机)