[ThreadX] 安富莱tx_initialize_low_level.s文件进一步简化
硬汉在论坛发布的ThreadX教学中修正了tx_initialize_low_level.s文件,通过对其学习,发现修正好的.s文件中保留了一些多余的变量和函数定义,大概是没删除干净。
1. 多余Import,后续未引用
![差异1](https://img2022.cnblogs.com/blog/1515886/202204/1515886-20220412161505042-1561319911.jpg)
2.未删除干净
![差异2](https://img2022.cnblogs.com/blog/1515886/202204/1515886-20220412170117903-347011757.png)
2.1
__tx_BadHandler //HardFault_Handler
__tx_SVCallHandler //SVC_Handler
__tx_IntHandler //interrupt处理(stm32的中断处理是以中断向量表的形式,而不是一个句柄)
![差异2](https://img2022.cnblogs.com/blog/1515886/202204/1515886-20220412161510185-1048222370.jpg)
2.2
__tx_NMIHandler //NMI_Handler
__tx_DBGHandler //DebugMon_Handler
![差异3](https://img2022.cnblogs.com/blog/1515886/202204/1515886-20220412161514720-1770344387.jpg)
*3.可选功能并进行修改
_tx_execution_isr_enter
_tx_execution_isr_exit
这两个函数均在utility的tx_execution_profile.c中定义,如果不使用该文件提供的任务统计功能则可以删除。如果调用tx_execution_profile.c中提供的任务统计功能用于统计系统中断时间的话,此处则不能删除。
如果保留:
![差异3](https://img2022.cnblogs.com/blog/1515886/202204/1515886-20220421113210064-1025948366.png)
shall use the symbol TX_EXECUTION_PROFILE_ENABLE instead of TX_ENABLE_EXECUTION_CHANGE_NOTIFY.
官方推荐使用TX_EXECUTION_PROFILE_ENABLE
![差异3](https://img2022.cnblogs.com/blog/1515886/202204/1515886-20220421113513529-1794638165.png)
补充
今天在一个帖子下面看到硬汉贴出来的将.s文件转为.c文件的帖子,在讨论区发现一个之前没有注意到的问题:threadx源码的.s文件中将systick的优先级设置为0x40,因为是高四位有效,所以意味着设置为4。硬汉将其改为0了。
讨论链接
LDR r1, =0x40FF0000 //改为0x00FF0000 ; SysT, PnSV, Rsrv, DbgM
STR r1, [r0, #0xD20] ; Setup System Handlers 12-15 Priority Registers
; Note: PnSV must be lowest priority, which is 0xFF