基本上,我需要创建一个用户应用程序,可以称之为ARM Cortex M3的简单内核。 内核和用户应用程序现在是不同的uVision项目。 内核处理所有硬件异常(SVC,PendSV,Hardfault等)
用户应用程序位于使用startup.s文件的特定地址中,内核能够在其静态地址内启动此用户应用程序。
另一方面,用户应用程序的startup.s文件也包含硬件异常处理程序定义,但用户应用程序从不处理或不应处理hw异常。它应该在内核责任下。
是否可以禁用/忽略/避免项目或构建的HW异常处理? (构建用户应用程序时,只能知道代码,堆栈和数据部分地址。)
答案 0 :(得分:0)
感谢您的回复。是的,正如您所建议的那样,当我从startup.s中删除向量表时,似乎工作正常。
另外,我还替换了主函数而不是Reset_Handler,我可以将main函数作为起点。 (内核已初始化整个系统) 第一个单词显示SP,第二个单词显示代码起始点(主要)
我的简单startup.s文件现在是
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
EXPORT __Vectors
IMPORT __main
__Vectors DCD __initial_sp ; Top of Stack
DCD __main ; Start Point
感谢。