從零開始

 
 
 
然后打開D盤下 的 BaseFramework_TC23XB_GPIO
賦值下面的 0_src 和 1_ToolEnv
到工程目錄下 TC234_test_runram 並刪除原本工程目錄下的 h文件和 src文件。

 

 



先暫時添加如下的頭文件



上報了很多錯誤



確實沒有包含 #include <_Reg/IfxAscLin_reg.h>
把上圖注釋去掉 程序重新編譯通過
配合我的電路板



下載程序以后,電路班上流水燈閃爍。 證明程序運行,
現在 看下 Lcf_Gnuc.lsl 文件, 並對其進行改造

上圖看見了 .cpu0.psram_text段 在__cppy_table 中將 .cpu0.psram_text 從FLASH0 復制到RAM中去運行。
LONG(LOADADDR(.data)); LONG(0 + ADDR(.data)); LONG(SIZEOF(.data));
注:第一個LONG(LOADADDR(.data));是載入到flash中的地址。
第二個 LONG(0 + ADDR(.data));是載入到運行存儲中的地址。
LONG(SIZEOF(.data));是數據輸出區域的大小(byte)

>psram 表示section 輸出段cpu0.param_text 是在psram中運行
AT>pfls0 表示 程序用 pflash 0 中裝載。
關於代碼從FLASH 拷貝到RAM 運行的方法 可參照userguide 第383頁

於是 我對程序 做如下 更改:

 
通過上圖 發現test_run_flash的運行地址是 0X8000 03F0
Test)run_ram 的運行地址是 0X7010 0000 就是RAM 的地址。
延申:
你還可以用段的另一種定義方法 :
/*
* 567
*/
.internalcode :
{
PROVIDE(__internalcode_start = .);
/*PROTECTED REGION ID(Protection: iROM .internalcode.begin) ENABLED START*/
/*Protection-Area for your own LDF-Code*/
/*PROTECTED REGION END*/
KEEP(*(.internalcode)) /*Internal Code*/
KEEP(*(.internalcode*))
/*PROTECTED REGION ID(Protection: iROM .internalcode) ENABLED START*/
/*Protection-Area for your own LDF-Code*/
/*PROTECTED REGION END*/
PROVIDE(__internalcode_end = .);
. = ALIGN(8);
} > psram_local AT > pfls0 /* PMI_PSPR: Scratch-Pad RAM (PSPR) */ /* PMU_PFLASH0: Program Flash Memory (PFLASH0) */
