This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6424 .AIS issues

Hello All,
I am facing a bit of a strange issue here. I have a program (whose basic purpose is to receive data chunks over serial and program it to the flash) that works perfectly fine when loaded on the DSP as an .OUT file. However, in its final application the program is itself intended to be loaded on the C6424 board as a serial bootable .ais file, after which it would boot and do its thing. The problem is that it doesnt work - from what I can tell the serial receive buffers are receiving complete garbage!

What is strange though is that the .AIS file working at some point. However if I modify the program and do so little as to just declare a variable, it goes completely out of whack and the serial buffers are back to receiving crap again.

Note that I don't see this issue at all if I use .OUT files. Has anyone encountered similar problems/issues? Could it have to do memory allocation (I simply declare my serial receive buffer as a 1024-byte char array to receive 1024 bytes at a time)

Sorry, I'm a bit new to DSP programming in general so please bear with me :)

Cheers,
Chris 

 

 

 

 

  • The most common cause of different behavior between a CCS-loaded .out file and a bootloaded .ais file is incomplete initialization. In CCS, a GEL file may take care of initializing several peripherals or memory components; with the bootloader, this has to be done in AIS parameters or in the code that gets loaded and run. So the first thing to check is your GEL file to see what gets run in Startup and the OnXyz... functions like OnTargetConnect and OnReset, and any GEL functions that you routinely run manually.

    If you cannot find a difference in initialization, then you will have to do some debug in CCS. The main tool for this is the hardware breakpoint. You can set an execution hardware breakpoint at the address of main, then do a CCS CPU Reset (with the boot mode set to enable the serial bootload. The DSP will run through its bootload process and start running up to the hardware breakpoint. Software breakpoints do not work because the bootloader will overwrite the program space where the software breakpoint would be placed.

    Please let us know how this comes out, and what new information you have if it does not get solved quickly.

     

    If this answers your question, please click  Verify Answer  on this post; if not, we look forward to more information.

  • Are you using the AIS tools to configure PLL and pinmuxing?  One "deficiency" in the AIS tool is that it doesn't configure the VDD3P3V_PWDN register.  That particular register is configured by the gel script however so that would be one in particular to make sure you configure in your application.