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.

[参考译文] F28M36P63C2:Concerto 控制器 M3侧分支无法正常工作

Guru**** 2589280 points
Other Parts Discussed in Thread: TMS320F28335

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/663660/f28m36p63c2-concerto-controller-m3-side-branching-not-working-properly

器件型号:F28M36P63C2
主题中讨论的其他器件:TMS320F28335

尊敬的所有人:

我正在将我的次级引导加载程序软件从 TMS320F28335控制器移植到 Concerto 控制器。   335控制器我使用以下指令

   _asm ("   lb   #0x3100000");

我想在协处理器 M3侧执行上述指令。

我不熟悉 ARM 控制器、我想转到 M3侧的特定地址位置。 我遇到以下指令的问题。

   _asm ("   BL    #0x00240000");//闪存 I 地址位置

编译时没有任何错误、但在执行上述指令控制后进入引导 ROM (I verified from Disassembly Window)。

我还在 M3侧按照以下说明进行了测试:

1_asm  ("   BL    Test_function");为  Test_function 提供的特定存储器工作正常。(但不建议在我的应用程序中使用 i.e.not)

2.__asm  ("   blx   #0x00240000"); 使用此指令控制转到指定位置、但在该地址位置 控制中执行操作码后转到未知位置。

2.  _asm ("   PC  #0x00240000"); 执行此指令后、PC 也未更改、但仍具有下一行地址位置。

谢谢、此致

Rakesh D

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rakesh、
    在 Cortex M3上、分支到的地址位0应为"1"、使用编译器生成的符号或函数名称时、地址的 LSB (位0)设置为"1"、因此对 Test_Function 的分支有效。

    如果要直接使用地址、请尝试在分支前将地址与0x1进行或运算。 有关可使用的汇编器指令的详细信息、请参阅 Cortex M3汇编规范。

    希望这对您有所帮助。

    此致
    Santosh Athuru
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Santosh:
    我尝试了以下两个选项、但无法正常工作。

    选项1:

    _asm (" bl #0x00280001");//bit0:与1相加

    “反汇编”窗口:
    地址位置 数据(操作码)
    002FD0F8: F280F000 BL 0x97D0F8

    执行上述指令后、控制转到未知位置


    选项2:
    _asm (" mov.w R0、#0x00280001");//bit0:与1相加
    _asm (" blx R0");//

    我在行 mov.w 处收到一个错误 Invalid immediate Operand R0、#0x00280001

    在上面的语句中、如果我给出了0x00280000构建而没有任何错误、则不是0x00280001。
    但是、在转至 R0后、位置控制会转到未知位置。


    请提供如何对位0位置进行或操作、以便我转至特定地址位置0x00280000。


    并提供与 Cortex M3汇编规范相关的任何链接、以用于汇编器指令。


    谢谢和此致,
    Rakesh D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rakesh、
    您必须参考 ARM 文档并根据需要学习汇编指令。 您可以编写 C 代码、并且在构建时、您可以选择保留汇编生成的文件并对其进行检查、并且/或者您也可以在调试器拆分窗口中加载程序并检查汇编。

    infocenter.arm.com/.../index.jsp


    此致
    Santosh Athuru