如何使用 armcc 为 ARM Cortex M3 创建一个没有硬件异常处理程序的图像
How to create an Image Without HW Exception Handlers for ARM Cortex M3 using armcc
基本上,我需要创建一个用户应用程序,它可以称为我的 ARM Cortex M3 简单内核。
内核和用户应用程序现在是不同的 uVision 项目。
内核处理所有硬件异常(SVC、PendSV、Hardfault 等)
用户应用程序位于使用 startup.s 文件的特定地址,内核能够在其静态地址内启动该用户应用程序。
另一方面,startup.s 用户应用程序文件也包含硬件异常处理程序定义,但用户应用程序从不处理或不应处理硬件异常。它应该由内核负责。
是否可以disable/ignore/avoid 项目或构建的硬件异常处理? (构建用户应用程序时只应知道代码、堆栈和数据段地址。)
感谢您的回复。是的,正如您所建议的,当我从 startup.s 中删除向量表时,它似乎有效。
此外,我还替换了main函数而不是Reset_Handler,我可以将main函数定位为起点。 (内核已经初始化了整个系统)
第一个字显示 SP,第二个字显示代码起始点 (main)
我的简单 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
谢谢。
基本上,我需要创建一个用户应用程序,它可以称为我的 ARM Cortex M3 简单内核。 内核和用户应用程序现在是不同的 uVision 项目。 内核处理所有硬件异常(SVC、PendSV、Hardfault 等)
用户应用程序位于使用 startup.s 文件的特定地址,内核能够在其静态地址内启动该用户应用程序。
另一方面,startup.s 用户应用程序文件也包含硬件异常处理程序定义,但用户应用程序从不处理或不应处理硬件异常。它应该由内核负责。
是否可以disable/ignore/avoid 项目或构建的硬件异常处理? (构建用户应用程序时只应知道代码、堆栈和数据段地址。)
感谢您的回复。是的,正如您所建议的,当我从 startup.s 中删除向量表时,它似乎有效。
此外,我还替换了main函数而不是Reset_Handler,我可以将main函数定位为起点。 (内核已经初始化了整个系统) 第一个字显示 SP,第二个字显示代码起始点 (main)
我的简单 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
谢谢。