XC8在巨集定義中使用\來換行時,如何加入#asm ... #endasm?
|
||||
---|---|---|---|---|
初級會員
|
系統及軟體版本:Windows 7 32位元、MPLAB X IDE v5.20、XC8 v2.05。
我想把用C18編譯的韌體移植到XC8, 在巨集定義中使用\來換行時, 若有#asm ... #endasm就會出現編譯錯誤, 於是寫了一個小的測試程式, 在main.c中 unsigned char i = 30, j = 9, k = 1; void main(void) { i = j + k; #asm movlw 0x64 #endasm asm("movlw 0x32"); _BLOCK1() _BLOCK2() while(1); } 在global.h中 extern unsigned char i, j, k; #define _BLOCK1()\ i = ( j - k ) * 2;\ #asm\ movlw 0x19\ nop\ #endasm #define _BLOCK2()\ i = ( j - k ) * 2;\ asm("movlw 0x19");\ asm("nop"); _BLOCK1()的部分編譯時會出問題, 個人猜測是\之後緊接著#asm或#endasm會無法辨識, 請問XC8在巨集定義中使用\來換行時, 如何加入#asm ... #endasm? 謝謝!
發表於: 2022/9/16 11:30
|
|||
|
Re: 缺少C99/C90的切換選項
|
||||
---|---|---|---|---|
初級會員
|
回饋些使用狀況,
讓同樣還在跑32位元作業系統的人省點測試時間。 MPLAB X IDE v5.40要安裝時偵測到32位元作業系統會不給安裝, MPLAB X IDE v5.35及MPLAB X IDE v5.30好像還需要另外弄DFP, 且看到MPLAB X IDE v5.35有一些人用起來不是很穩定, 後來決定安裝MPLAB X IDE v5.20, 搭配XC8 v2.05時無法編譯(XC8 v1.xx沒問題), 要到Tools →Options→Embedded→Build Tools頁面下, 將C Compiler及Assembler的路徑改為C:\Program Files\Microchip\xc8\v2.05\bin\xc8-cc.exe才能順利編譯。 感謝前面兩位大大的協助~
發表於: 2022/9/6 9:02
|
|||
|
缺少C99/C90的切換選項
|
||||
---|---|---|---|---|
初級會員
|
系統及軟體版本:Windows 7 32位元、MPLAB X IDE v4.05、XC8 v2.05。
如附件所示XC8編譯器缺少C99 / C90的切換選項, 請問這是什麼原因呢? 感謝!
發表於: 2022/8/30 13:49
|
|||
|
Re: XC16編譯錯誤
|
||||
---|---|---|---|---|
初級會員
|
我是從FreeRTOS官網下載的,
https://www.freertos.org/a00104.html 官網的DEMO是使用MPLAB IDE及C30編譯器, 我想修改成使用MPLAB X IDE及XC16編譯器, 遇到那兩個不知如何修改的編譯錯誤。 用您提供的DEMO https://github.com/MicrochipTech/freeRTOS-PIC24-dsPIC-PIC32MM 能順利編譯成功, 感謝協助~
發表於: 2022/3/18 11:32
|
|||
|
XC16編譯錯誤
|
||||
---|---|---|---|---|
初級會員
|
大家好!
MCU:PIC24FJ128GA010 使用XC16編譯出現兩個錯誤一直無法解決, 想請教一下附件中的錯誤是什麼原因或該怎麼追查? 感謝!
發表於: 2022/3/17 14:01
|
|||
|
燒錄時EEPROM無法清除
|
|
|||
---|---|---|---|---|
初級會員
|
發表於: 2016/3/18 15:28
|
|||
|