I was following instructions from Mr Eric Wilbur's 2 day SYS/BIOS workshop and migrating the C28x codes provided to my own F28335 development board. It worked well when debugging with my emulator(XDS100v2) plugged.
But then I tried to mod the project, hoping it to boot from flash with the emulator unplugged. Came across the post
http://e2e.ti.com/support/embedded/tirtos/f/355/p/216140/764024.aspx#764024. So I follow the instruction, checked the box "Enable boot from FLASH", and things just went wrong when compiling. Error message poped up:
#10099-D program will not fit into available memory. placement with alignment/blocking fails for section "codestart" size 0x2 page 0. Available memory ranges: (there's nothing here)
I've referred to the advice and learned that there's something related to the lack of physical memory. Indeed, in Wilber's example, he set up a quite huge stack and heap, so I disabled the UIA and the Loggers and things alike and reduced the size of the stack and heap, but it didn't work, same problem still existed.
In fact, the example is just a very simply programme to blink a LED, it didn't make sense that the F28335 lacked the physical memory for such a simple programme, with its 34K-RAM. That very chip has been proven by a quite complicated non-bios programme, so I'm 100% sure that the chip is OK.
I am using CCS v5.5.0.00077 w/Bios ver 6.37.3.30 & XDC Tools ver 3.25.5.94
DSP_2833x_BIOS.cmd and lib files are imported from F28335 headerfiles v133 packed with controlSUITE 3.28
I remain the TMS320F28335 file what it is when it was automatically created with the project
In the CMD file:
MEMORY
{
PAGE 0: /* Program Memory */
FLASH : origin = 0x300000, length = 0x03FF80 /* on-chip FLASH */
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x33FFF6, length = 0x000002 /* Used for "boot to Flash" bootloader mode. */
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* CSM password locations in FLASH */
OTP : origin = 0x380400, length = 0x000400 /* on-chip OTP */
ADC_CAL : origin = 0x380080, length = 0x000009 /* ADC_cal function in Reserved memory */
.....
SECTIONS
{
/* Allocate program areas: */
.cinit : > FLASH PAGE = 0
.pinit : > FLASH PAGE = 0
.text : > FLASH PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASH PAGE = 0,
RUN = L07SARAM PAGE = 1,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart)
Many thanks to anyone who read this post and I'm really looking for your help!
Best Regards
He