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

发布时间:2023年12月29日

六、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 官方资料与不足

图片

  • 例程源码
    RZN2L_bsp_xspi0bootx1_app
    RZN2L_bsp_xspi0bootx1_loader

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

  • 仅展示

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

    图片

6.3 loader app分离工程的优化

6.3.1 自动调节合并appsection

图片

图片

图片

图片

6.3.2 loader中使用外设

图片

图片

图片

图片

//正确完整的编译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

图片

文章来源:https://blog.csdn.net/cl234583745/article/details/135285370
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。