在系统启动移植的分析过程中的,会遇到几处C语言中调用汇编的函数,我们来一起看下。
1、lookup_processor_type函数
在启动分析的时候,从start_kernel -> setup_arch -> setup_processor -> lookup_processor_type
/*
* This provides a C-API version of __lookup_processor_type
*/
ENTRY(lookup_processor_type)
stmfd sp!, {r4 - r6, r9, lr}
mov r9, r0
bl __lookup_processor_type
mov r0, r5
ldmfd sp!, {r4 - r6, r9, pc}
ENDPROC(lookup_processor_type)
2、printascii 函数
ENTRY(printascii)
addruart_current r3, r1, r2
b 2f
1: waituart r2, r3
senduart r1, r3
busyuart r2, r3
teq r1, #'\n'
moveq r1, #'\r'
beq 1b
2: teq r0, #0
ldrneb r1, [r0], #1
teqne r1, #0
bne 1b
mov pc, lr
ENDPROC(printascii)
本文解析了在系统启动移植过程中遇到的两个典型C语言调用汇编函数的例子:lookup_processor_type函数用于处理器类型查找,printascii函数负责ASCII字符打印。通过这些实例深入理解跨语言调用的技术细节。
1082

被折叠的 条评论
为什么被折叠?



