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.
I have spoken to you guys before about this. I want to run a program from flash memory. I haven't been successful in the past. I have learned a few new things about it but now I wanna run an example. I saw the folllowing lines and i want to verify them with you guys:
//! -# Change the linker cmd file to reflect the flash memory map.
//! -# Make sure any initialized sections are mapped to Flash.
//! In SDFlash utility this can be checked by the View->Coff/Hex
//! status utility. Any section marked as "load" should be
//! allocated to Flash.
//! -# Make sure there is a branch instruction from the entry to Flash
//! at 0x3F7FF6 to the beginning of code execution. This example
//! uses the DSP0x_CodeStartBranch.asm file to accomplish this.
//! -# Set boot mode Jumpers to "boot to Flash"
//! -# For best performance from the flash, modify the waitstates
//! and enable the flash pipeline as shown in this example.
//! Note: any code that manipulates the flash waitstate and pipeline
//! control must be run from RAM. Thus these functions are located
//! in their own memory section called ramfuncs.
// M y c o n c e r n s & s t e p s //
1. - by me changing the linker file from 28026_RAM_lnk.cmd to F28026.cmd I see the allocations to FLASH instead RAM
/* Allocate program areas: */
.cinit : > FLASHA PAGE = 0
.pinit : > FLASHA, PAGE = 0
.text : > FLASHA PAGE = 0
codestart : > BEGIN PAGE = 0
do I have to check for anything else?
2.- I have added the F2802x_CodeStartBranch.asm file.
3.- I do not understand what boot mode jumpers are. This is the grayest area to me. I'm a control stick or launchpad or anything like that. How do I go about these jumpers?
4.- file:///C:/Users/Alan/Downloads/0576.Running%20from%20Internal%20Flash%20(1).pdf <--- This thing is good at explaining how everything works but not exactly how they're related to setting up the flash
I'm trying to find out if any other steps need to be taken to boot from flash. I figured I wouldn't have to reinvent the wheel and write extensive configuration code. can someone shed any light on these parts I find ambiguous?
Hi Alan,
"Running from Internal flash" is the best doc you can get for this purpose. You can also check "flash_f28027" example that can be found here:
C:\ti\controlSUITE\device_support\f2802x\v210\f2802x_examples\flash_f28027
You just have to edit the cmd file according to F28026.
Do let me know if this help you out.
Regards,
Gautam
Hello Alan,
1. I think you also need to add one of cmd file from this folder C:\ti\controlSUITE\device_support\f2802x\v210\f2802x_headers\cmd if you have not included it yet to your project.
2. This is OK.
3. This information is from F28069 but it is the same for F2802x. You need to pull up TDO and GPIO4 (you can see the schematic of launchpad about how to connect it C:\ti\controlSUITE\development_kits\C2000_LaunchPad\LAUNCHXL-F28027\HwDevPkg).
Best regards,
Maria
When you say pull up.. do you mean doing this in software? It would be kinda hard for me to physically do this since I already have my chip on a PCB. I made the PCB very much how the launchpad was setup.
I read that if the emulator is connected I can still access the two registers in the PIE Vector table in order to tell it where to boot from. Is this still possible, would you say from your experience?
Hello Alan,
If you have made your hardware based on Launchpad, then you can check whether these 2 pins (TDO and GPIO34) has been made like in Launchpad.
This pull up should be made in the hardware so you can boot from flash when you run in standalone (= without emulator).
I am sorry that I have no experience to change these pins in PIE vector Table. You can do your experiment and share us your result.
And also try the flash example that Gautam mentioned, If it works, then I am almost sure your hardware is fine.
Best regards,
Maria