[ThreadX] 安富莱tx_initialize_low_level.s文件进一步简化

硬汉在论坛发布的ThreadX教学中修正了tx_initialize_low_level.s文件,通过对其学习,发现修正好的.s文件中保留了一些多余的变量和函数定义,大概是没删除干净。

1. 多余Import,后续未引用

差异1

2.未删除干净

差异2
之前已经在修正时把启动文件中的多余中断向量表删除掉,所以剩余的一些Handler句柄应该是躲过一劫的“遗老遗少”。

2.1

__tx_BadHandler     //HardFault_Handler
__tx_SVCallHandler  //SVC_Handler
__tx_IntHandler     //interrupt处理(stm32的中断处理是以中断向量表的形式,而不是一个句柄)
差异2

2.2

__tx_NMIHandler  //NMI_Handler
__tx_DBGHandler  //DebugMon_Handler
差异3

*3.可选功能并进行修改

_tx_execution_isr_enter
_tx_execution_isr_exit

这两个函数均在utility的tx_execution_profile.c中定义,如果不使用该文件提供的任务统计功能则可以删除。如果调用tx_execution_profile.c中提供的任务统计功能用于统计系统中断时间的话,此处则不能删除。

如果保留:

差异3

shall use the symbol TX_EXECUTION_PROFILE_ENABLE instead of TX_ENABLE_EXECUTION_CHANGE_NOTIFY.

官方推荐使用TX_EXECUTION_PROFILE_ENABLE

差异3

补充

今天在一个帖子下面看到硬汉贴出来的将.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
posted @ 2022-04-12 17:04  中庭之园  阅读(338)  评论(0编辑  收藏  举报