Compile Demo/PC on Linux natively (GCC x86)

pfsmorigo wrote on Monday, March 08, 2010:

Hi Everybody,

I’m trying to compile the example from the Demo/PC directory natively on linux, using gcc, but without success.

I currently using the follow command to compile the source. Inside the directory I do:

i586-mingw32msvc-gcc \
-I. \
-I$(FREERTOS_PATH)/Source/include \
-I$(FREERTOS_PATH)/Source/portable/oWatcom/16BitDOS/PC \
-I$(FREERTOS_PATH)/Source/portable/oWatcom/16BitDOS/common \
-I…/Common/include \
main.c \
./FileIO/fileIO.c \
./ParTest/ParTest.c \
$(FREERTOS_PATH)/Source/croutine.c \
$(FREERTOS_PATH)/Source/list.c \
$(FREERTOS_PATH)/Source/queue.c \
$(FREERTOS_PATH)/Source/tasks.c \
$(FREERTOS_PATH)/Source/portable/oWatcom/16BitDOS/PC/port.c \
$(FREERTOS_PATH)/Source/portable/oWatcom/16BitDOS/common/portcomn.c \
$(FREERTOS_PATH)/Source/portable/MemMang/heap_2.c
-o pc

Did I’m missing something, like an include or a source?

Another question: Do I need to install/configure openwatcom in order to work?

The result of the above build is the errors:

…/…/Source/queue.c: In function ‘xQueueGenericSend’:
…/…/Source/queue.c:480: error: expected ‘(’ before ‘{’ token
…/…/Source/queue.c:480: error: expected identifier or ‘(’ before numeric constant
…/…/Source/queue.c:542: error: expected ‘(’ before ‘{’ token
…/…/Source/queue.c:542: error: expected identifier or ‘(’ before numeric constant
…/…/Source/queue.c: In function ‘xQueueAltGenericSend’:
…/…/Source/queue.c:593: error: expected ‘(’ before ‘{’ token
…/…/Source/queue.c:593: error: expected identifier or ‘(’ before numeric constant
…/…/Source/queue.c:624: error: expected ‘(’ before ‘{’ token
…/…/Source/queue.c:624: error: expected identifier or ‘(’ before numeric constant
…/…/Source/queue.c: In function ‘xQueueAltGenericReceive’:
…/…/Source/queue.c:682: error: expected ‘(’ before ‘{’ token
…/…/Source/queue.c:682: error: expected identifier or ‘(’ before numeric constant
…/…/Source/queue.c:703: error: expected ‘(’ before ‘{’ token
…. (more errors)….

Thanks in advance!
Paulo Flabiano Smorigo

edwards3 wrote on Monday, March 08, 2010:

The PC demo is 16bit real mode code and uses DOS style BIOS calls, I don’t think it will work on top of Linux. There is a Linux simulator though.