新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > FLASH調(diào)試_HCS12學習筆記(6)

FLASH調(diào)試_HCS12學習筆記(6)

作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
停了一階段沒有調(diào)試FLASH的程序,調(diào)了一階段的CAN,無果,CAN的程序也很麻煩,不過今天早上終于把FLASH的程序調(diào)通了,其實,程序本身應該是沒有什么問題的,但是因為程序沒有分段存儲,所以直接導致FLASH的分頁寄存器沒有能夠讀出來,今早,我把我的所有.C文件全部標明代碼存儲到0x4000這個位置上,F(xiàn)LASH的程序直接調(diào)試成功。這里貼我的部分改動,以作存檔。

本文引用地址:http://butianyuan.cn/article/201611/321075.htm

//[Flash.c]Flash擦寫-------------------------------------------------------*
//本文件包含: *
// (1)Flash_Erase_Sector:擦除一個指定的扇區(qū) *
// (2)Flash_Write_Nword:向一個指定的區(qū)域?qū)懭肴舾蓚€字 *
//-------------------------------------------------------------------------*

//頭文件
#include "Flash.h" //Flash擦寫頭文件

#pragma CODE_SEG CODE_flash
#pragma CONST_SEG CONST_flash

void Erase_Write_Pretreat(INT8U page); //擦寫子函數(shù)內(nèi)部調(diào)用的函數(shù)聲明
//頁所對應的塊對照表
//兩個flash塊,每塊4頁 flash0 flash1
const INT8U pagetable[4][4] = {{0x3C,0x3D,0x3E,0x3F},{0x38,0x39,0x3A,0x3B},{0x34,0x35,0x36,0x37},{0x30,0x31,0x32,0x33}};

上面紅色的代碼是我添加出來的,功能是將本段代碼放在CODE_flash對應的存儲空間里。

PLACEMENT
_PRESTART,
STARTUP,
ROM_VAR,
STRINGS,
VIRTUAL_TABLE_SEGMENT,
//.ostext,
NON_BANKED,
COPY

INTO ROM_C000;

DEFAULT_ROM INTO PAGE_38, PAGE_39;

CODE_main,
CODE_flash,
CODE_MCUInit,
CODE_SCI
INTO ROM_4000;

//.stackstart,
SSTACK,
//.stackend,
DEFAULT_RAM INTO RAM;

這一段是P&E_Multilink_CyclonePro_linker.prm里摘出來了,它默認定義了所有代碼、常量的存放區(qū)段,紅色部分是我添加出來的,把我的主要文件放入了ROM_4000這個地址里,也就是對應了0x4000_0x7fff這個地址里。

于是程序順利調(diào)通,這里小小得慶祝一下~




評論


技術專區(qū)

關閉