MSP430 CCE / FreeRTOS v4.0.4 Port. This update does not contain the entire FreeRTOS v4.0.4 distribution. To get that - please go to www.FreeRTOS.org and following the instructions to download the entire code base. This zipfile contains the code additions/modifications needed to support the MSP430 Code Composer Essentials Eval. edition (limited to 8KB build) using the TI U64 FET board. The build that is contained in this zipfile is made with the latest MSP430 CCE eval. edition available from TI - that's version 'Service Pack 1' as of this writing. You can see a good view of the 'U64 board that I used from TI for this port on my web-site. I have an 8MHz XTAL on XT2 and a 32768 XTAL on XT1 or the LF XTAL. The board has been modified for JTAG and External Power (some on-board jumpers that need to be in the right place). For this build - I simply used 2 'AA' baterries to power the board. The build was done with an MSP430F1611IPM Rev. B chip in the socket. You should be able to use any chip you like as long as you make the modifications. Build Notes: ============ I don't pretend to be a Code Composer Expert at this point nor an Eclipse Expert. I have been running the LED Blink example code on one of my boards for a couple of days now - and it is still running - so I conclude that at least the fundamentals of the port are OK. Since I used the eval. CCE tools for this - I was only able to enable the LED Flash Demo - so the Yellow Led on the U64 board will Flash when the demo. code is run. It's connected to P1.0 - so if your board has something on that port it will toggle periodically. I've noted things that you'll have to change in the code - like memory sizes, etc. The *.out file can be found in ..\Debug\... You can load the *.out file onto the eval. board and observe LED 1 blinking according to the 'default' LED task 'pattern' and (if you have Com tasks enabled) ASCII 'A' thru 'z' will print out of the serial port @ 115.2KB, 8 bits, 1 stop-bit, no parity. Note you'll need a NULL modem with some sort of driver (with appropriate voltage) connected to be able to see data on your serial terminal (I haven't done this yet myself on this port - so there could be issues with it). ============ Notes: The following is just here as a suggestion on how to get going - plus gives a 'state of the port' - please read under prvSetupHardware() and port.c below as a minimum: Files to modify for your target: ..\Demo\msp430_CCE: take a look at main.c: - (also, in case you're porting to another target - these are good hints:) mainly prvSetupHardware(): clocking and I/O's are set-up there - VERY important! You must first change prvSetupHardware() to match your target. There's a lot of example I/O setup there - you may damage your target if you don't match the I/O to your target. FreeRTOSConfig.h - configCPU_CLOCK_HZ - default here is (8MHz For The U64 Eval. Board) 8MHz FreeRTOSConfig_asm.h - copy of the above to be included in assembler file (below). in main() - put in what you want to try and run - but look at the functions first. I have commented out vStartLEDFlashTasks() because my target doesn't match that... (the 'U64 Eval. board has LED 1 as mentioned above - so it is included - you can customize as you wish) In main() - only the LED task(s) is(are) started - at this point I think all of them are running OK - you can monitor the usTaskCheck[] array and you should see all of the counters increment - indicating that pvParameters must be working OK. You can also monitor sBlockingProducerCount[] and sBlockingConsumerCount[] (provided this is enabled). This port was done with the MSP430F1611 in mind - you'll want to take a look at: FreeRTOS\Source\portable\msp430f1611: interrupt_grabber.c - just a debug file that will 'grab' - spin (while (1)) if an unexpected interrupt is generated by your target. Just edit this as needed. If you get INTVEC 'collisions' at link time - more than likely you need to edit this file. Lowinit.c - included with another compiler - helps to initialize unused areas in memory - helpful in finding that pointer marching through memory - in the workspace I've defined this as (FF3F) - JMP HERE.... port.c - take a look and modify as needed. portext.s43 - MSP430 file with context save/restore macros and what's necessary for the timer tick. I basically cloned the MSPGCC and xWorks ports as a starting point obviously. portmacro.h - take a look and modify as (or if) needed. This port uses the serial.c file in the xWorks port (modified): ..\Demo\msp430_Crossworks\serial\serial.c: take a look at that and modify as needed. This port also uses the ParTest.c file in the xWorks port (modified also): ..\Demo\msp430_Crossworks\ParTest\ParTest.c: take a look at that and modify as needed. portable.h: ..\Source\include\portable.h: MSP430_CCE is defined there. It's also a C preprocessing #define... You'll need to modify this as needed. This port is supplied as is and is posted as a 'public service'. If you have questions I'll be happy to attempt to help; but you'll probably be better served by looking at www.FreeRTOS.org or asking Richard Barry. You can post a question at http://www.sourceforge.net/projects/freertos/ look for Forums on the toolbar and post there. It's also useful to search the forum archives because the issue you may be having has happened to someone before and you'll be able to benefit from their prior experience by reading the forum threads. As a reminder: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Have Fun, John C. Westmoreland www.WestmorelandEngineering.com July '06