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.
你(们)好。
我使用 TM4C1294KCPDT 微控制器和 XDS110 USB 调试探针进行调试。 目前、我面临以下问题
Cortex_M4_0:文件加载程序:验证失败:地址0x00007F80处的值不匹配请验证目标内存和内存映射。
Cortex_M4_0:GEL:file:D:\ACP Workspace\28-02-24 1.5V_law_Master_RV1.5\Debug\law_Master_RV1.5.out:发生数据验证错误、文件加载失败。
我如何才能找到该问题的根本原因。 请 尽快解决此问题。
您好!
-您可以在其他电路板上重复同样的问题吗?
-我有时看到了这个错误,但通常在下电上电或重置后,错误将在第二次尝试后消失。
-你的错误是永久性的吗?
-在您看到这个错误之前,您已经成功使用了多少年了?
-发生错误时芯片是否很热?
-您能解锁设备吗? 请参阅此应用手册中关于使用 dbgjtag.exe https://www.ti.com/lit/pdf/spma075的第5.3.2节。可以使用以下命令。
" dbgjtag.exe–f @xds110–Y UNLOCK、MODE=Tiva"
您可以在其他电路板上重复同样的问题吗?
是
我有时看到过此错误、但通常在下电上电或复位后、该错误会在第二次尝试后消失。
不,它一直来了
您的错误是否永久存在?
是
查看此错误前、您成功使用此芯片多长时间了?
始终成功运行
发生错误时芯片是否很热?
芯片未发热。
注:
实际上、我正在我的项目中执行引导加载程序序列。 最初、我将在1.5版固件中设置地址范围。
首次成功调试时。 如果我修改另一个 具有相同地址范围的固件(1.7版)、它没有进行调试。 它显示以下错误。
Cortex_M4_0:GEL 输出:
存储器映射初始化完成
Cortex_M4_0:文件加载程序:验证失败:地址0x00007F80处的值不匹配请验证目标内存和内存映射。
Cortex_M4_0:GEL:file:D:\ACP Workspace\version 1.13\law_Master\Debug\law_Master.out:发生数据验证错误、文件加载失败。
我的问题是
1.首先,我把地址范围设置为1.5版本,成功调试
2.我修改了1.7版本的固件,地址范围和不调试相同。
我的要求是
1.如何避免以下错误
Cortex_M4_0:文件加载程序:验证失败:地址0x00007F80处的值不匹配请验证目标内存和内存映射。
2.如何禁用像上述错误一样的地址比较选项?
请告诉我我我不想比较地址,我需要禁用比较 地址,如地址0x00007F80的值不匹配. 我想调试相同地址范围的1.7版本。
因此,请指导我解决这个错误.
提前感谢。
1.首先,我把地址范围设置为1.5版本,成功调试
2.我修改了1.7版本的固件,地址范围和不调试相同。
[/报价]1.5和1.7有什么区别? 这两者之间的.cmd 文件是否相同?
您可以在另一个定制板上重复同样的问题吗?
您可以在 LaunchPad 上重复同样的问题吗?
1.5和1.7有什么区别? 这两者之间的.cmd 文件是否相同?
我对固件进行了一些更改、但不是按引导顺序进行的。 在步进、BLDC 电机序列等其他序列中完成的修改。
注意:实际上它 是一个完整的电机固件。 我在电机序列中仅对引导加载程序序列进行了一些更改。
您可以在另一个定制板上重复同样的问题吗?
是的、我尝试了一些其他电路板、但无法调试。
您可以在 LaunchPad 上重复同样的问题吗?
是
我对固件进行了一些更改,但不是按启动顺序进行的。 [/报价]您是否正在使用引导加载程序? 你说的引导顺序是什么意思?
您可以展示您的.cmd 文件吗?
您可以查看.map 文件并比较工作和不工作的版本吗? 映射文件应提供一些提示。
您是否正在使用引导加载程序? 你说的引导顺序是什么意思?
这是 UCD3138中的引导
if ((address = 0xff))
{
UARTIntEnable (UART3_BASE、UART_INT_RX | UART_INT_RT);// UART 3仅启用引导加载程序用途
boot_loading();//禁用除 UART 3之外的所有中断
}
您可以查看.map 文件并比较工作和不工作的版本吗? 映射文件应提供一些提示。
首先、我调试1.5版本。 已成功调试。
接下来、我尝试调试1.7版本、但不进行调试。
然后、检查并验证 Uniflash 软件。 它显示以下错误。
我在 uniflash 中打开存储器 ma、其中存储器从 0x00004000不匹配、此地址。
请告诉我如何解决此问题。 我试图传达 我的问题,如果你需要更多的信息,请告诉我。
非常感谢您的支持。 继续支持我们。
1.5和1.7版本的.cmd 文件在哪里?
您是否看过.map 文件?区别是什么?
您一直说它在调试模式下无法正常工作? 它在运行模式下工作吗(未连接调试器?)
工作版本的存储器屏幕截图从0x4000开始?
如果您的应用程序将驻留0x4000、那么您应该将矢量表位于0x4000? 您的屏幕截图似乎没有正确的矢量表。
感谢您的观看。
1.5和1.7版本的.cmd 文件在哪里?
这是1.5和1.7 .cmd 文件之间的差异。
您是否看过.map 文件?区别是什么?
此外、在比较两个文件时也存在一些差异。
您一直说它在调试模式下无法正常工作? 它在运行模式下工作吗(未连接调试器?)
如果没有调试器、则已成功构建。 但不用于调试。
工作版本的存储器屏幕截图从0x4000开始?
这是 工作版本从0x4000开始的内存的屏幕截图。
请指导我 如何在此阶段找到错误。
哪个是工作的 cmd 文件?
由于我目前不在办公室出差、请在周三之前等待回复。
感谢您的回复。
由于我目前不在办公室出差、请在周三之前等待回复。
没问题没有问题。
哪个是工作的 cmd 文件?
感谢您问这个问题。 让我解释一下。
实际上、在 v1.5的 cmd 中、
--retain=g_pfnVectors
内存
{
FLASH (RX):origin = 0x00000000,length = 0x00080000
SRAM (rwx):origin = 0x20000000、length = 0x00040000
}
我的问题是、我无法谈论1.7版。 在 V1.5版本相同的版本中、首先我更改了地址范围、
在我第一次更改此地址进行调试后、没有问题。 一旦我在第二次调试时停止调试器、版本是同样的 v1.5 (不是 v1.7)。
我需要解决方案为什么它没有第二次调试(同一版本). 它 显示以下弹出窗口。
希望 您理解我的问题。 如果您需要任何信息、请告诉我。 感谢您的快速响应。
您好!
现在、我要查看您的1.7V cmd 文件。 您的引导加载程序从0x7F000而不是0x0开始的原因。 引导加载程序应从0x0开始、并且您的应用程序应从满足两个要求的地址偏移开始。 1) 1)应用程序偏移地址必须是1KB 的倍数;2)应用程序偏移量必须位于16KB 的闪存页边界处。 我强烈建议您尝试 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_serial 中的引导加载程序示例、以及随引导加载程序一起位于 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo\boot_demoplexamples\中的示例应用。 按原样运行这些示例以了解引导加载程序的工作原理。 boot_serial 是从0x0开始的引导加载程序、而 boot_demo1应用程序从0x4000开始、位于16kB 页边界。 如果应用程序没有从闪存页边界启动、那么您可能会误擦除闪存。 例如、如果您在0x2000 (8kB 边界)启动应用程序、然后当您擦除闪存时、它将擦除从0x0到0x3FFF 的整个闪存页。 最初驻留在闪存开头的内容、例如引导加载程序(从0x0开始)将被擦除。 为你所面临的类似原因。 在任何情况下、您都应该查看 TivaWare 引导加载程序并根据您的应用要求进行调整。 如果您对 TivaWare 引导加载程序示例有任何疑问、可以发布问题。 同样、首先按原样运行引导加载程序示例、在您使其正常运行并了解其应该如何运行之前、不要进行修改。
感谢您的宝贵答复。 我将尝试 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_serial 和引导加载程序随附的示例应用程序、位于 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo1。
您的引导加载程序为何从0x7F000而不是0x0开始?
引导加载程序的最大代码大小为4K 字节。 CBL 需要128K 字节的 RAM 大小来接收将从 GUI 接收的新闪存代码以及用于内部变量
闪存块大小:0x4000 (16KB)。 可擦除或编程的最小大小
定制引导加载程序应加载到指定的地址0x7F000
这就是使用0x7F000的原因。
这在 tm4c1294kcpdt.cmd 文件中是否有任何错误? 请推荐我。
谢谢!
您好!
引导加载程序的最大代码大小为4K 字节。
您的引导加载程序可能只占用4K、但闪存页为16K。 闪存是逐页擦除的。 您的引导加载程序将占用从0x7C000至0x7FFFF 的应用程序相同页面。 如果引导加载程序发送一条擦除应用程序的命令、它将擦除从 0x7C000到0x7FFFF 的整个页面、包括引导加载程序本身。
TivaWare 引导加载程序从0x0开始。 复位后、处理器从引导加载程序所在的0x0运行。 引导加载程序将确定是否存在有效的应用程序。 例如、应用程序可驻留在0x4000。 如果0x4000处存在有效的应用程序、引导加载程序将跳转至该应用程序并运行该应用程序。 如果没有应用或引导加载程序被指示根据引脚输入更新固件、引导加载程序将使用所选接口(如 UART、SPI 或其他接口)加载应用固件。 应用程序在运行后、如果需要再次更新应用程序、可以跳回引导加载程序。 引导加载程序的基本工作方式。 我不知道为什么引导加载程序必须在闪存的末尾而不是闪存的开头。 您可以自行决定、但您需要创建自定义引导加载程序、而不是引用现有的引导加载程序示例。 如果选择使用自己的自定义引导加载程序、则必须让引导加载程序占用最后16kB、而不仅仅是4kB。 您必须指示自定义引导加载程序不要擦除最后一个16kB 闪存页、这样引导加载程序就不会被擦除。
你(们)好。
谢谢!
我尝试了"自定义引导"加载、从4KB 到16KB。我进行了以下更改
我更改了 tm4c1294kcpdt.cmd 文件。
我更改了地址、也是针对16KB。
但这次我遇到了不同的错误、比如、当我更改任何修改时、验证失败对话框不打开。 这次调试器进入故障 ISR。
然后我打开调试器窗口、单击"XDS110 Debug (正在运行)"。 然后、我按"暂停"按钮、它会进入故障 ISR 模式。
我已 循序渐进地处理了你在上述答复中所说的话。 它会进入故障 ISR 模式。
请建议我在此阶段可以做些什么。
非常感谢您的巨大支持。
你(们)好。
谢谢!
我尝试了"自定义引导"加载、从4KB 到16KB。我进行了以下更改
我更改了 tm4c1294kcpdt.cmd 文件。
我更改了地址、也是针对16KB。
但这次我遇到了不同的错误、比如、当我更改任何修改时、验证失败对话框不打开。 这次调试器进入故障 ISR。
然后我打开调试器窗口、单击"XDS110 Debug (正在运行)"。 然后、我按"暂停"按钮、它会进入故障 ISR 模式。
我已 循序渐进地处理了你在上述答复中所说的话。 它会进入故障 ISR 模式。
请建议我在此阶段可以做些什么。
非常感谢您的巨大支持。
我尝试了"自定义引导"加载、从4KB 到16KB。我进行了以下更改
[/报价]
您的 FLASH_bootloader 从0x7F000开始、长度为0x4000 (16k)。 长度应为0x1000 (4K)。 您不能将 TivaWare 引导加载程序用作参考是否有充分的原因? 我强烈建议您使用 TivaWare 引导加载程序或至少尝试使用它来了解其工作原理、如果您需要适应您对不同起始引导加载程序地址的要求、则可以这样做。
好的,谢谢
请参阅任何设置与我的查询相关的存储器地址的示例。 我对如何为引导加载程序项目选择存储器地址感到困惑。 请给我发送链接。
谢谢
我不理解您的问题。 如前所述、引导加载程序示例位于 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_serial、随附的示例应用位于 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo1。 您是否试用过此示例?
是的, 我尝试过,但我在运行在该代码时遇到了一些问题
在该代码中、存储器
内存
{
Flash (RX):origin = 0x00000000,length = 0x00010000
SRAM (rwx):origin = 0x20000000、length = 0x00010000
}
1. 在我做了任何修改后、调试器进入故障 ISR 模式。 在尝试时、我同样遇到了调试问题。
您好!
我知道错误的原因。 该示例是为支持1MB 闪存和256KB SRAM 的器件创建的。 对于示例应用程序 boot_deme1、对于 TM4C1294KNCPDT、您必须将闪存长度更改为512KB。 如前所述、我强烈建议您首先在 LaunchPad 上运行该示例、该 LaunchPad 的 TM4C1294NCPDT 处理器支持 1MB。 首先在 LaunchPad 上运行、没有要修改的内容。 一旦开始工作、您就可以通过更改.cmd 来进行调整、以便您可以在自定义电路板上使用 TM4C1294KNCPDT 运行。
请参阅 boo _demo1_ccs.cmd 中的以下必要更改:
发件人:
/* The starting address of the application. Normally the interrupt vectors */
/* must be located at the beginning of the application. */
#define APP_BASE 0x00004000
#define RAM_BASE 0x20000000/* System memory map */
MEMORY
{
/* Application stored in and executes from internal flash */
FLASH (RX) : origin = APP_BASE, length = 0x000fc000
/* Application uses internal RAM for data */
SRAM (RWX) : origin = 0x20000000, length = 0x00040000
}
至:
/* The starting address of the application. Normally the interrupt vectors */
/* must be located at the beginning of the application. */
#define APP_BASE 0x00004000
#define RAM_BASE 0x20000000/* System memory map */
MEMORY
{
/* Application stored in and executes from internal flash */
FLASH (RX) : origin = APP_BASE, length = 0x0007c000
/* Application uses internal RAM for data */
SRAM (RWX) : origin = 0x20000000, length = 0x00040000
}
感谢您发送编修。
非常感谢你的评分