COFF(Common Object File Format )是TI公司為了能讓程式碼有更高的可移植性和可閱讀性,
COFF格式主要是方便模組化編成,若將一個任務分解拆成多個子任務,並由多個人員分別進行開發時,可以提高開發速度,
為了有更高的可移植性,每個模組盡量做到互相"獨立" ,你不會希望你插入一段功能還要修修改改
在COFF格式下,程式不同的部分被劃分為不同的段(.section),如全局變數(.ebss)、初始值(.init)、局部變量(.Stack)、代碼(.text),這樣劃分的好處是易於管理。
就想像說打遊戲弓箭手一團、騎兵一團、步兵一團 也是方便管理
TI如果你打開範例資料夾一看,會有CMD文件,隨便打開一個文件可以看到以下
用戶可以對記憶體設定暫存器的名稱 (通常Page 0是設定程式空間,Page 1 是設定數據空間)
BEGIN 是暫存器名稱,origin 開始位址 length 是位址長度
MEMORY
{
PAGE 0 :
/* BEGIN is used for the "boot to SARAM" bootloader mode */
BEGIN : origin = 0x000000, length = 0x000002
RAMM0 : origin = 0x000050, length = 0x0003B0
RAML0_L3 : origin = 0x008000, length = 0x002000 /* RAML0-3 combined for size of .text */
/* in Example_F2806xSWPrioritezedInterrupts */
RESET : origin = 0x3FFFC0, length = 0x000002
FPUTABLES : origin = 0x3FD860, length = 0x0006A0 /* FPU Tables in Boot ROM */
IQTABLES : origin = 0x3FDF00, length = 0x000B50 /* IQ Math Tables in Boot ROM */
IQTABLES2 : origin = 0x3FEA50, length = 0x00008C /* IQ Math Tables in Boot ROM */
IQTABLES3 : origin = 0x3FEADC, length = 0x0000AA /* IQ Math Tables in Boot ROM */
BOOTROM : origin = 0x3FF3B0, length = 0x000C10
PAGE 1 :
BOOT_RSVD : origin = 0x000002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack */
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
RAML4 : origin = 0x00A000, length = 0x002000 /* on-chip RAM block L4 */
RAML5 : origin = 0x00C000, length = 0x002000 /* on-chip RAM block L5 */
RAML6 : origin = 0x00E000, length = 0x002000 /* on-chip RAM block L6 */
RAML7 : origin = 0x010000, length = 0x002000 /* on-chip RAM block L7 */
RAML8 : origin = 0x012000, length = 0x002000 /* on-chip RAM block L8 */
USB_RAM : origin = 0x040000, length = 0x000800 /* USB RAM */
}