This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS1114:如何将闪存代码复制到 RAM 中以运行基于 TMS570LS1114的读取和写入数据?

Guru**** 2463330 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/652864/tms570ls1114-how-to-copy-the-flash-code-into-ram-in-order-to-operate-the-read-and-write-data-based-on-tms570ls1114

器件型号:TMS570LS1114

我想将闪存代码复制到 RAM 中,但我不熟悉这些步骤,您能给我一些关于如何实现我的目标的建议吗?

秋奇

2017年12月29日

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、邱

    1.在 cmd 文件中定义闪存 API 的存储器位置

    例如:  Flash_API (RX) :origin=0x00000020 length=0x000014E0

    2.在 cmd 文件中定义闪存 API 部分

    例如:  

    /*创建一个名为 flashAPI */的输出段
    /*将代码加载到 FLASH_API (在 MEMORY{}*/中定义
    /*在 SRAM 中运行代码*/
    /*符号 API_LOAD 的值是起始加载地址*/
    /* api_run 的值是起始运行地址*/
    闪存 API:

     fapi_UserDefinedFunctions.obj (.text)
     flash_operation.obj (.text)      /*您的闪存擦除/编程/读取等 obj 文件*/
     --library=...\..\lib\F021_API_CortexR4_be.lib (.text)   
    }load = flash_API、run = SRAM、load_start (api_load)、run_start (api_run)、size (api_size)

    3.定义将 flashAPI 段复制到 SRAM (汇编代码)的函数

    例如:

    ;------------------------------------------------------------------

    ;将闪存 API 从闪存复制到 SRAM。

    .def _APIcopy2RAM_
    asmfunc

    copyAPI 2RAM_

    .ref API_load
    FLASH_LOAD .word API_LOAD
    .ref API_run
    FLASH_run .word API_run
    .ref API_size
    FLASH_SIZE .word API_SIZE

    LDR r0、FLASH_LOAD
    LDR R1、FLASH_RUN
    LDR R2、FLASH_SIZE
    添加 R2、R1、R2
    COPY_Loop1:
    LDR R3、[r0]、#4
    STR R3、[R1]、#4
    CMP R1、R2
    BLT COPY_LOOP1
    BX LR

    endasmfunc

    3.调用 main()中的函数  

    例如:

    copyAPI 2RAM_();

       

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    QJ Wang 您好:
    我很高兴收到您的回答以解决我的问题、但我仍然无法了解如何将 asm 文件添加到我的项目中。我的步骤如下:
    1.in 命令,添加安装,"
    部分

    .intvecs:{}>向量
    .text:{}> FLASH0
    .const:{}>FLASH0
    .cinit:{}> FLASH0
    .pinit:{}> FLASH0
    .calRom:{}> CAL_ROM
    .bss :{}> RAM
    .data :{}> RAM
    .sysmem:{}>RAM
    .calRam:{}> CAL_RAM
    /*用户代码开始(4)*/
    /*用户代码结束*/


    calRom_API:

    fapi_UserDefinedFunctions.obj (.text)
    flash.obj (.text)//您的闪存擦除/编程/读取等 obj 文件
    --library=..\lib\f021_API_CortexR4_be.lib (.text)

    load=calRom、run=RAM、load_start (api_load)、run_start (api_run)、size (api_size)
    "
    将示例代码添加到我的项目中。我想解释汇编代码是否包含头文件和 asm 文件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FLASH_LOAD.word API_LOAD
    FLASH_run.word API_run
    FLASH_SIZE.word API_SIZE
    这些代码是 unsigned int?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    在您的 cmd 文件中、部分 calrom_API 应放置在 CAL_ROM 中、而不是另一个部分 calRom 中。

    在 copyAPI 2RAM 汇编函数中:
    1.在"flash_load"和".word"之间添加 apace
    2.在"flash_run"和".worm"之间添加 apace
    3.在"flash_size"和".word"之间添加 apace
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对不起,qj。这个问题已经解决了,但我忘记检查它的状态。