BLHeli_S 代码分析---BLHeli.asm入口函数位置分析
查询网络资料 汇编 代码入口位置就是 Flash 的开始位置也就是0x0000位置。
在 BLHeli.asm
文件中并未找到 0x00的位置运行相应函数,找任意一个种类电调头文件查看,此处我们查看 AIKON_Boltlite_30A.inc
文件,在该文件中找到对应0x00位置。
对应代码如下所示
asm
;**********************
; MCU specific macros *
;**********************
MACRO Interrupt_Table_Definition
CSEG AT 0 ; Code segment start
jmp reset
CSEG AT 0Bh ; Timer0 interrupt
jmp t0_int
CSEG AT 2Bh ; Timer2 interrupt
jmp t2_int
CSEG AT 5Bh ; PCA interrupt
jmp pca_int
CSEG AT 73h ; Timer3 interrupt
jmp t3_int
ENDM
由代码可知,从0x00位置开始运行,直接跳转到 reset
位置
reset
函数所在位置在BLHeli.asm
文件中的最后几行。
函数如下
asm
CSEG AT 19FDh
reset:
ljmp pgm_start ;无条件长转移
END
--由上文件可知入口函数为pgm_start
入口函数-pgm_start