工具/软件:Starterware
您好、先生:
我使用 了 RM48L952ZWT 和 HAL Cogen
同样的条件: 没有调试(J-tag)、电路板无法启动
在 E2E 社区上查找:
您好!
我的团队开发了基于 RM48L952ZWT 微控制器的电路板、我们将使用自己的启动代码。
每当我尝试调试代码时、一切都正常工作。 我可以重新启动、重置它、一切都可以正常工作。 当我断开电路板的电源、然后重新插回电路板时、问题就会出现。 它设置了 DE nERROR 引脚、我的代码无法启动。 为了测试这一点、我使用 halcogen 对电路板进行了编程 、并在其中放置了一个虚拟应用(无限循环)、我可以看到一切都正常工作。
如果我还在 RM48HDK 中测试了我的代码、我可以看到、有时它会起作用。 如果我在连接调试电缆的情况下将其关闭、我的应用程序就会工作、如果我在没有插入调试器的情况下也这样做、则应用程序不工作。
这显然是一个固件问题、我必须配置错误、但我不知道是什么。 我将在清理代码并删除专有代码后立即发布代码。
很抱歉花这么长时间回答您的问题。 我在发布问题10分钟后发现了错误。 这是一个非常愚蠢的错误。 我正在调用初始化 VFP 模块、在函数开始时我正在执行
stmfd sp!、{r0}
如果堆栈指针和寄存器已经被初始化、这是可以的。 正如我在遵循初始化手册时所说的、VFP 应该是我初始化的第一个东西、但我没有考虑堆栈指针。 注意到这一点后,我更改了 initVFP()函数的位置。 但我也可以删除 stmfd 指令(及其模拟指令)、它也可以正常工作。
我不知道
我正在调用初始化 VFP 模块、在函数开始时我正在执行
stmfd sp!、{r0}
如果堆栈指针和寄存器已经被初始化、这是可以的。
如何在 HALCoGen ASM 和 C 模块上进行修改
exe 中。 sys_code.asm 和 sys_startup.c ( void _c_int00 (void))
此致
作者:Ken Lin