Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE
Tool/software: TI C/C++ Compiler
[Background]
I want to develop a bootloader for TMS320F28069 controller. But here, I want to download the code through UART B (as UART A - GPIO pins are already used for some other purpose and also I do not want to go for GPIO setting for boot mode selection - as those have been already in use for different purpose).
Hence, here I am trying to update my controller's boot rom code (Select Boot Mode Function), where with some customization like on reset controller will switch to SCI boot mode by default.
For the same I have done some modification in code shared on "Path: <controlSUITE>\libs\utilities\boot_rom\2806x\2806x_boot_rom_v1_1\source"
When I imported this code initially I found below errors.
Error 1 ---> "../source/I2C_Boot.c", line 63: fatal error: cannot open source file "Boot.h"
Error 2 ----> "../lnk/TMS320x2806x_boot_rom_lnk.cmd", line 56: error: cannot find file "Flash2806x_API_V100.lib"
To resolve this issue,
1) Included following paths in include options menu,
"${workspace_loc:/${ProjName}/F2806x_headers/include}"
"${workspace_loc:/${ProjName}/include}"
2) Copied "Flash2806x_API_V100.lib" file from below path "C:\ti\controlSUITE\libs\utilities\flash_api\2806x\v100a\lib" into the project work space location
Now I am not getting error, but following warnings are coming.
**** Build of configuration Release for project 2806x_boot_rom ****
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_ClearLoop.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_ClearSector.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Compact_Pulse.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_CompactSector.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Delay.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_DepCompactSector.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_DepRecover.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_DisInt.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Erase.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Erase_Pulse.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_EraseSector.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Init.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Internals.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Prog.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Prog_Pulse.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_ToggleTest.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Utils.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Verify.obj>": compatibility cannot be determined
warning: build attribute vendor section TI missing in "../Flash2806x_API_V100.lib<Flash28_Version_Hex.obj>": compatibility cannot be determined
'Finished building target: TMS320x2806x_boot_rom.out' ' '
**** Build Finished ****
[Query]
1] Is my approach is correct? Can we develop the customize boot loader program so that controller on reset will directly jump to SCI mode (UART B) by default?
2] Could you please let me know about how to resolve these warnings?
3] When I tried to download the program into target hardware, I got following error.
C28xx: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.
C28xx: File Loader: Verification failed: Values at address 0x3FF72C@Program do not match Please verify target memory and memory map.
C28xx: GEL: File: C:\Source Code\2806x_boot_rom\Release\TMS320x2806x_boot_rom.out: a data verification error occurred, file load failed.
4] How to program OTP memory locations - OTP_KEY and OTP_BMODE?
Requesting you to answer above queries.