From: JIA P. <jp...@gm...> - 2013-06-08 09:28:40
|
Hi, all: Since a lot of the testing codes were written under Windows with Keil C51, it's seriously a big problem for me to recompile everything under Linux using sdcc. Again, the following line is in one of my codes, which seems to declare a function delayNOP() which pauses 4 CPU clocks. *#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};* However, what is the function equal to Keil C51 *_nop_()* in *sdcc* ? I don't want to re-write the code, but just simply modify it and make it work after flash it onto my board. So, can anybody help me please? Cheers -- Pei JIA Email: jp...@gm... cell: +1 604-362-5816 Welcome to Vision Open http://www.visionopen.com |
From: roelof 't H. <ro...@it...> - 2013-06-08 09:51:17
|
On Sat, 2013-06-08 at 17:28 +0800, JIA Pei wrote: > #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; > > However, what is the function equal to Keil C51 _nop_() in sdcc ? > > I don't want to re-write the code, but just simply modify it and make > it work after flash it onto my board. So, can anybody help me please? Please start reading the sdcc user manual which you can find on the sdcc sourceforge page. roelof |
From: Alain P. <ala...@fr...> - 2013-06-08 10:19:32
|
Hi, Le samedi 8 juin 2013 17:28:33 JIA Pei a écrit : > Hi, all: > > Since a lot of the testing codes were written under Windows with Keil C51, > it's seriously a big problem for me to recompile everything under Linux > using sdcc. > > Again, the following line is in one of my codes, which seems to declare a > function delayNOP() which pauses 4 CPU clocks. > > *#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};* > > However, what is the function equal to Keil C51 *_nop_()* in *sdcc* ? > > I don't want to re-write the code, but just simply modify it and make it > work after flash it onto my board. So, can anybody help me please? I don't remember if a such function exists in the sdcc libraries, but you can write your own as is: #define Nop() \ __asm \ nop \ __endasm \ #define delay4NOP() \ __asm \ nop \ nop \ nop \ nop \ __endasm \ Regards, Alain |
From: Alain P. <ala...@fr...> - 2013-06-08 17:34:26
|
Le samedi 8 juin 2013 12:19:18 Alain Portal a écrit : > Hi, > > Le samedi 8 juin 2013 17:28:33 JIA Pei a écrit : > > Hi, all: > > > > Since a lot of the testing codes were written under Windows with Keil C51, > > it's seriously a big problem for me to recompile everything under Linux > > using sdcc. > > > > Again, the following line is in one of my codes, which seems to declare a > > function delayNOP() which pauses 4 CPU clocks. > > > > *#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};* > > > > However, what is the function equal to Keil C51 *_nop_()* in *sdcc* ? > > > > I don't want to re-write the code, but just simply modify it and make it > > work after flash it onto my board. So, can anybody help me please? > > I don't remember if a such function exists in the sdcc libraries, but you can write your own as is: > > #define Nop() \ > __asm \ > nop \ > __endasm \ > > #define delay4NOP() \ > __asm \ > nop \ > nop \ > nop \ > nop \ > __endasm \ Does it help? |
From: JIA P. <jp...@gm...> - 2013-06-09 00:11:22
|
Hi, Alain Portal: Thank you so much... I didn't make my program work yet, but I tested your delay4NOP()() already, and yes, the program compiled successfully. For now, the testing code is a as simple as: #include <8051.h> #define Nop() \ __asm \ nop \ __endasm \ #define delay4NOP() \ __asm \ nop \ nop \ nop \ nop \ __endasm \ void main(void ) { uchar m; P0=0xFF; P1=0xFF; delay4NOP(); } Thank you Alain...Testing going on... Best Regards Pei On Sun, Jun 9, 2013 at 1:34 AM, Alain Portal <ala...@fr...> wrote: > Le samedi 8 juin 2013 12:19:18 Alain Portal a écrit : > > Hi, > > > > Le samedi 8 juin 2013 17:28:33 JIA Pei a écrit : > > > Hi, all: > > > > > > Since a lot of the testing codes were written under Windows with Keil > C51, > > > it's seriously a big problem for me to recompile everything under Linux > > > using sdcc. > > > > > > Again, the following line is in one of my codes, which seems to > declare a > > > function delayNOP() which pauses 4 CPU clocks. > > > > > > *#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};* > > > > > > However, what is the function equal to Keil C51 *_nop_()* in *sdcc* ? > > > > > > I don't want to re-write the code, but just simply modify it and make > it > > > work after flash it onto my board. So, can anybody help me please? > > > > I don't remember if a such function exists in the sdcc libraries, but > you can write your own as is: > > > > #define Nop() \ > > __asm \ > > nop \ > > __endasm \ > > > > #define delay4NOP() \ > > __asm \ > > nop \ > > nop \ > > nop \ > > nop \ > > __endasm \ > > Does it help? > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > -- Pei JIA Email: jp...@gm... cell: +1 604-362-5816 Welcome to Vision Open http://www.visionopen.com |