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.
Trey German,
You helped me with a flash propgramming problem last April when I was running CCS4. I am having problems getting my flash programming to work using CCS5.4/5.5 now. I am trying to rewrite the low memory with a new version that I first place in high memory (Concerto F28M35x).
I am apparently erasing some code that is still being used as the problem occurs when I try to erase an area in low flash memory that appears to contain :
00213f10 00000410 csl_f28m35x_m3.lib : interrupt.obj (.text)
00214320 00000380 : dcsm.obj (.text)
002146a0 00000338 : i2c.obj (.text)
So, I thought I would do more testing with your example flash_prog example in the latest Control_Suite, V201, but find that I can't seem to get it to work either. I run the example and then look at the memory map, but nothing appears to be written into Flash_L or Flash_K. This is one problem.
To test my application, I wanted to, using ramfuncs, move and program the code at 0x200000 through 0x204000 up to high memory at 0x240000, then erase and move it back down to it's original location beginning at 0x200000, then restart the application again..
Will this work? Can you identify the procedure I would need to do this? Everything associated with this process would have to be placed into and run from RAM. Is there a trick to identifying all the necessary code that's involved to make this successful?
Thanks,
Pat
I can get neither V200 flash_prog example to work with CCS5.4 nor V201 flash_prog to work with CCSv5.5. What started to be a simple test to show how i could get my app running has turned out to be more complicated. I run the program and expect to see data programmed at Sector L, right - memory location 0x00208000. All the memory display shows is "-----" or "FFFFF".
What do I need to do to verify that this example works?
Does anyone have any experience with this example that could help me.
Thanks,
Pat
Also, I cannot get dual blinky to work on the f28m35h52c1 using the v201 m3. V140 of m3 and c28 does work. V140 cm3 and v210 c28 also works. What have you (TI) changed about this program? What mware driver files should I be using? Can I substitute the older v140 driverlib for the v201?
Can anyone at TI take a look at this?
Thanks,
Pat
Hi Pat,
regarding "blinky", perhaps, this is the problem of GPIO setup for rev.0 & rev.A,B
http://e2e.ti.com/support/microcontrollers/c2000/f/171/p/303917/1065149.aspx#1065149
Regards,
Igor
Hi Pat,
I just check the flash_prog code and it worked fine for me. Kind in mind you need to check the memory contents by setting break points after the different Flash API function calls in the example (Sector K gets programmed, but then erased again in the last section of the code). Try running it again, with the breakpoints to check flash contents.
Also the lowest addresses (0x00200000) and highest addresses (0x0027FF00) in Flash contain the CSM passwords, and you should not be writing/erasing these locations unless using the FLASH API functions to set your passwords.
Regards,
Derek
Derek,
Thanks for your reply. I did check this out and found that I did fail to realize that the flash was erased again. So the example seems to work after all.
My problem is that I have not been able to erase and reprogram lower flash memory which I need to do for reprogramming my application. I bring in new program data through the IPC, store it in high flash memory, verify, then transfer it to 0x200000 and force a restart. I cannot seem to be able to get this to work.
I also cannot get breakpoints to work reliably on CCS5.5. Also, CCS 5.5 hangs frequently, frustrating any attempts to debug. It seems to happen most often when I try to disconnect.
This reprogramming feature is a common requirement for and PLC (power line communication ) node - to be able to reprogram it remotely. There is no example to show how this can be successfully accomplished. Effective PLC must have this feature.
Has anyone tried to do this with the Concerto? This would be a matter of simply reading flash memory from 0x200000 to say 0x220000 , programming it to a high memory location, and then writing it back to 0x200000. Can this be done? I've put everything that appears to be involved in the operation into ramfuncs, but still I cannot get it to work,
Any and all help appreciated. I will repost this request to "freshen " the request.
Thanks,
Pat