extern unsigned char *rtos_stack 跟 extern unsigned char rtos_stack[] 的差異

Posted by: 邱小新 at 上午11:37 in

extern __xdata unsigned char *rtos_stack;

;../source/test.c:66: printf_tiny("(%d)SP = '%x'\n\r", i, rtos_stack[i]); mov a,r2 add a,_rtos_stack mov dpl,a clr a addc a,(_rtos_stack + 1) mov dph,a movx a,@dptr

extern __xdata unsigned char rtos_stack[];

;../source/test.c:66: printf_tiny("(%d)SP = '%x'\n\r", i, rtos_stack[i]); mov a,r2 add a,#_rtos_stack mov dpl,a clr a addc a,#(_rtos_stack >> 8) mov dph,a movx a,@dptr

原來的變數為 __xdata unsigned char rtos_stack[3],很明顯的在 SDCC 裏 (char *) 不能等同於 (char []),這點要特別注意。

0 意見

張貼留言