Hi
We are moving out RTOS based app on the C6748 from debug to production boards. The app runs without a problem on the CCS debugger env but when I burn to flash the app does not boot.
Here are questions and back ground for the problem:
1. I use AISgen tool from TI to convert .out to .ais. The AIS is loaded with a .cfg prior to the conversion. I have confirmed that the .cfg works ok as I can use this to boot a non RTOS based project correctly.
2. I use sfh tool from TI to burn it in NAND flash on the C6748_LCDK board.
3. Next move the dip switches to boot from NAND, power cycle and nothing happens.
4. I can do the above steps for a non RTOS bases project and it works without a problem.
5. I have also included a boardInit.c which is called first on entry to main() to do init of clocks, psc etc etc.The boardInit.c is a copy of theC6748_LCDK GEL file converted to C. I tested this in ccs debug and it works.
SO here are the questions:
1. For RTOS based projects does the AISgen tool provide enough initialization for proper booting? That is AISgen loaded with the tested .cfg file that works with a non-rtos project?
2. Are there special compile/link switches required during the build process to make the app standalone bootable outside the debug environment?
3. Are there extra things that need to be done to a RTOS based project compared with a NON RTOS based project to make it bootable?
4. In the debug env CCS uses .GEL to init the board before the app runs. Can the same thing be achieved by calling a boardInit function which is the same as the GEL after entry into main() and called first? Or does the boardInit() function need to be executed prior to entry into main()?
5. at the moment _c_int00 is placed where ever the linker wants it to sit. Does it have to be in a special location for bootable images?
6. My understanding of the boot process is that the RBL will read from flash, load all sections and then jump to _c_int00. c_int00 will then set up the stack and c environment. Then jump to setting up of the RTOS environment will be carried on automatically from there and jump to main(). Is this correct?
please answer each of my questions one by one. You can point me to other stuff (I have read loads of wikis and docs) but please answer the questions.. I need answers to these questions so that I can create a map and narrow down what is going on through a process of elimination without running around in loops.
This is the second week of trying to sort out this problem...we need a resolution soon as the customer will be here in few days for FAT.
Thanks for your help