MAC7111 with IAR Embedded 4.30A

nobody wrote on Tuesday, January 10, 2006:

Is possible to use one ARM port of FREERTOS with the Friscale MAC71xx ARM processor or must I port the RTOS to that CPU? Wich ARM version is better? I use IAR 4.30A for programming.

Best regards.

nobody wrote on Tuesday, January 10, 2006:

The MAC711xx is an ARM7TDMI so you can base your project on an existing code base, but some minor tasks are necessary.

1/ You can see which files are required by looking at an existing IAR ARM7 project.  The startup code you require has to be correct for the MAC7111 of coarse.  In addition you need to check that the startup code sets up stacks for the Supervisor and IRQ modes AND that main() is called in Supervisor mode (otherwise the scheduler will not start correctly).  Note that only the tasks.c, list.c, queue.c and port.c are actually the scheduler.  The other files are just part of the demo.

2/ prvSetupHardware() in main() can be used to setup any peripherals specific to processor if necessary.

3/ partest.c is used to flash LED’s.  This would need to toggle the correct IO pins for your hardware if you want to run the demo applications included in the FreeRTOS download.

4/ FreeRTOSConfig.h needs to be set correctly for your hardware.  In particular the clock frequency.

5/ prvSetupTimerInterrupt() in port.c has to be setup for the mac7111 timer peripheral, and the ISR placed correctly within the interrupt controller.

Basically - the hardware setup for your board needs changing - the core scheduler code is the same across all ARM7TDMI devices.


nobody wrote on Tuesday, January 10, 2006:

Tank you, I’ll working on.

nobody wrote on Monday, June 26, 2006:

Reading this thread I’ve just succedeed to make FreeRTOS 4.0.0 run on a Freescale MAC7111 device.

I began from LPC2106 port with GCC. The main problem was/is the vectored interrupt controller which is not available on the mac7111. This one has a powerful interrupt controller but not vectored. I had to read the interrupt source from software and then jump to the correct ISR.
Now the demo application is running fine on a low cost evaluation board from freescale, with the leds and the serial line. I’m in a preliminary stage. Is there someone interested in it?

nobody wrote on Monday, June 26, 2006:

How does the interrupt controller work then?  Just a single interrupt after which you have to poll the peripherals?

I notice in the STR9 port the interrupts are handled differently.  The context is saved by a single handler, before reading the jump address.  This seems neat.

acehigh1971 wrote on Monday, June 26, 2006:

Opened a new thread <a href=>here</a> because this is off topic.