共2条
1/1 1 跳转至页
394,13,13,BL,SWI,Exception,395 书上394爷6.13(13)BL SWI_Exception和395页
问
SWI_Exception(int SWI_Num,int*Regs)
之间怎样传递参数啊
那个SWI_Num 和Regs是通过那个寄存器传递的啊,就是那样定义的吗?
还有书上433页倒数第7行
ldr R0,=$FunctionIndex其中那个=$FunctionIndex是什么地址啊
这一段狂看不懂
书上居然讲代码比较简单,不再说明
还有那个SWI 0x40
应该是调用了c语言代码
那个Regs[0]=_OSFunctionAddr[Regs[0]];是通过什么返回的啊?
答 1: re.1.参数传递是按ATPCS规定来的(SWI_Num存于R0、*Regs存于R1),详细规则参看ADS的相关帮助文档;
2.这是一个宏定义,$FunctionIndex是使用宏时传递的一个值;
3.Regs[0]=_OSFunctionAddr[Regs[0]];是根据R0的值,将数组_OSFunctionAddr的对应值通过R0返回。 答 2: Regs[0]=_OSFunctionAddr[Regs[0]];能不能解释这一句啊函数只是定义了一个*Regs,Regs[0]初值吗
怎么得到的啊
之间怎样传递参数啊
那个SWI_Num 和Regs是通过那个寄存器传递的啊,就是那样定义的吗?
还有书上433页倒数第7行
ldr R0,=$FunctionIndex其中那个=$FunctionIndex是什么地址啊
这一段狂看不懂
书上居然讲代码比较简单,不再说明
还有那个SWI 0x40
应该是调用了c语言代码
那个Regs[0]=_OSFunctionAddr[Regs[0]];是通过什么返回的啊?
答 1: re.1.参数传递是按ATPCS规定来的(SWI_Num存于R0、*Regs存于R1),详细规则参看ADS的相关帮助文档;
2.这是一个宏定义,$FunctionIndex是使用宏时传递的一个值;
3.Regs[0]=_OSFunctionAddr[Regs[0]];是根据R0的值,将数组_OSFunctionAddr的对应值通过R0返回。 答 2: Regs[0]=_OSFunctionAddr[Regs[0]];能不能解释这一句啊函数只是定义了一个*Regs,Regs[0]初值吗
怎么得到的啊
共2条
1/1 1 跳转至页
我要赚赏金
