共3条
1/1 1 跳转至页
这个参数总是传不对,是不是编译器有问题?
问
void key_sCAN((void)*pdata);
主程序调用函数
OSTaskCreate(key_sCAN,(void*)0,&key_sCANStk[TASK_STK_SIZE-1],0);
其函数原型是
INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio);
编译后看的key_sCAN的首地址为0x00d1,但传过去的数总是0x0054,
奇怪的是,要是把调用函数改为
OSTaskCreate((void*)0x00d1,(void*)0,&key_sCANStk[TASK_STK_SIZE-1],0);
传递结果就正确了~
为什么直接送数可以,送函数名怎么就不行呢?
编译器的反汇编程序
13: OSTaskCreate(key_sCAN,(void*)0,&key_sCANStk[TASK_STK_SIZE-1],0);
+000000D4: 2422 CLR R2
+000000D5: 822A STD Y+2,R2
+000000D6: E287 LDI R24,0x27
+000000D7: E091 LDI R25,0x01
+000000D8: 8399 STD Y+1,R25
+000000D9: 8388 STD Y+0,R24
+000000DA: 2722 CLR R18 ////
+000000DB: 2733 CLR R19 ////////////R19,R18值为第2个参数值,值为0,是正确的
+000000DC: E504 LDI R16,0x54 /////////
+000000DD: E010 LDI R17,0x00 ////////R17,R16的值是第一个参数值,为0x0054!
+000000DE: 940E0E0C CALL 0x00000E0C
答 1: 更奇怪的是我加了一句void(*key)(void*pt);
key=key_sCAN;
无论key_sCAN函数放在那个位置,其结果都是0x054!
主程序调用函数
OSTaskCreate(key_sCAN,(void*)0,&key_sCANStk[TASK_STK_SIZE-1],0);
其函数原型是
INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio);
编译后看的key_sCAN的首地址为0x00d1,但传过去的数总是0x0054,
奇怪的是,要是把调用函数改为
OSTaskCreate((void*)0x00d1,(void*)0,&key_sCANStk[TASK_STK_SIZE-1],0);
传递结果就正确了~
为什么直接送数可以,送函数名怎么就不行呢?
编译器的反汇编程序
13: OSTaskCreate(key_sCAN,(void*)0,&key_sCANStk[TASK_STK_SIZE-1],0);
+000000D4: 2422 CLR R2
+000000D5: 822A STD Y+2,R2
+000000D6: E287 LDI R24,0x27
+000000D7: E091 LDI R25,0x01
+000000D8: 8399 STD Y+1,R25
+000000D9: 8388 STD Y+0,R24
+000000DA: 2722 CLR R18 ////
+000000DB: 2733 CLR R19 ////////////R19,R18值为第2个参数值,值为0,是正确的
+000000DC: E504 LDI R16,0x54 /////////
+000000DD: E010 LDI R17,0x00 ////////R17,R16的值是第一个参数值,为0x0054!
+000000DE: 940E0E0C CALL 0x00000E0C
答 1: 更奇怪的是我加了一句void(*key)(void*pt);
key=key_sCAN;
无论key_sCAN函数放在那个位置,其结果都是0x054!
共3条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
我要赚赏金
