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.

[参考译文] TMS320F2812:有关 memcpy()函数的问题

Guru**** 2551110 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/938707/tms320f2812-question-about-memcpy-function

器件型号:TMS320F2812

尊敬的团队:

当我在 F2812中使用 memcpy()函数时,我包含了"string.h"。  编译时,程序不会提示错误,但只要在加电后运行到 memcpy()函数,它就会进入非法中断“interrupt void iliced_isr (void)"。

我通过 memcpy()函数将初始化闪存函数从闪存 CD 3ee815地址传输到 RAM,运行的起始地址为3f9915。 编译后、映射文件如下所示:

FLASH_SET_funcs

* 0 003ee815 00000017 运行 ADDR = 003f9915

003ee815 00000017 DSP281x_sysctrl.obj (flash_set_funcs) 

我检查了3ee815地址上的汇编语句是否正确、但将其移至 RAM 后、汇编语句被混淆。 检查地址是否不重叠、那么此错误的原因是什么?

此致

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

    FF、

    我相信存储器中的0x3F9915区域受到代码安全模块的保护、如果 CSM 未解锁、将回读所有0x0000。  如果被执行、这将导致 ITRAP0。

    即使没有设置密码、也会出现这种情况、但要禁用 CSM、只需读取闪存存储器中地址 0x3F7FF8-0x3F7FFF 的密码位置即可

    最棒的

    Matthew

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

     您好 Matthew:

    感谢你的答复。

    默认情况下,memcpy()函数在哪里定义? 在哪里可以找到此函数的定义和原型?

    此致

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

    您好!

    memcpy()函数的原型在 strings.h 中定义