許多微控制器在燒錄之前需要一個(gè)自定義的初始化序列來(lái)初始化目標(biāo)硬件,例如初始化PLL時(shí)鐘,關(guān)閉看門(mén)狗或定義Flash的等待狀態(tài)。在使用這些對(duì)初始化過(guò)程有特殊要求的芯片時(shí),在Segger J-Flash軟件中創(chuàng)建工程時(shí)需要設(shè)置芯片的初始化序列。
打開(kāi)J-Flash軟件,在Options->Project settings選項(xiàng)中,可以設(shè)置芯片的初始化和燒錄成功后需要執(zhí)行的動(dòng)作。
J-Flash支持設(shè)置的初始化命令包括讀寫(xiě)特定地址、校驗(yàn)、暫停CPU和設(shè)置芯片復(fù)位方式等。支持的完整的指令列表請(qǐng)參考J-Flash用戶(hù)手冊(cè)中的介紹。下面簡(jiǎn)單介紹一些常用的初始化指令。
Reset:設(shè)置芯片的復(fù)位方式,如硬件復(fù)位或軟件復(fù)位等,某些芯片需要的特殊復(fù)位方式也需要通過(guò)該命令進(jìn)行設(shè)置。
Delay:延時(shí)一段時(shí)間。
Write 32bit:向指定地址寫(xiě)入32位的數(shù)據(jù)。注意所有的 "Write *"命令只能用于寫(xiě)入RAM或SFR寄存器,而不能將數(shù)據(jù)寫(xiě)入到Flash閃存地址。要修改寫(xiě)入到Flash區(qū)域的數(shù)據(jù)只能通過(guò)改變燒錄文件來(lái)實(shí)現(xiàn)。燒錄文件可以通過(guò)使用 "Write File*"命令在初始步驟中修改。
Write File 32bit:向燒錄文件中的指定地址中寫(xiě)入32位的數(shù)據(jù),用于修改要燒錄的固件。
Halt:暫停CPU。
Go:CPU開(kāi)始運(yùn)行。
下面通過(guò)AT91SAM7S256該芯片的初始化序列設(shè)置來(lái)幫助理解,在Init.steps選項(xiàng)設(shè)置的Comment一欄可以添加注釋?zhuān)糜谟涗浽撔忻钏獙?shí)現(xiàn)的功能。
如上圖所示,在該芯片的初始化序列中共設(shè)置了8條指令,下面將介紹這些指令具體完成的工作。
指令0:無(wú)延時(shí)立即執(zhí)行復(fù)位動(dòng)作,復(fù)位模式是模式8。該復(fù)位方式是用于ATMEL AT91SAM7內(nèi)核芯片的特定復(fù)位模式,該模式通過(guò)寫(xiě)芯片的RSTC_CR寄存器來(lái)復(fù)位外設(shè)。復(fù)位外設(shè)會(huì)使所有外設(shè)處于定義的復(fù)位狀態(tài)。這包括內(nèi)存映射寄存器,這意味著復(fù)位后flash被映射到地址0。JLink支持的所有復(fù)位模式的介紹請(qǐng)參考J-Link的用戶(hù)手冊(cè)。
指令1:向0xFFFFFD44(看門(mén)狗定時(shí)模式寄存器)地址寫(xiě)入數(shù)據(jù)0x00008000這個(gè)值來(lái)關(guān)閉看門(mén)狗。
指令2:向0xFFFFFF60(MC Flash模式寄存器)地址寫(xiě)入數(shù)據(jù)0x00320300這個(gè)值來(lái)設(shè)置flash的等待狀態(tài)。
指令3:向0xFFFFFC20(PMC寄存器)地址寫(xiě)入數(shù)據(jù)0x00000601這個(gè)值來(lái)初始化PLL時(shí)鐘。
指令4:延時(shí)200ms。
指令5:向0xFFFFFC2C(PLL寄存器)地址寫(xiě)入數(shù)據(jù)0x00191C05這個(gè)值來(lái)設(shè)置PLL時(shí)鐘和分頻系數(shù)。
指令6:延時(shí)200ms。
指令7:向0xFFFFFC30(PMC寄存器內(nèi)的特定位)地址寫(xiě)入數(shù)據(jù)0x00000007這個(gè)值來(lái)選擇系統(tǒng)時(shí)鐘和外設(shè)時(shí)鐘。
本文中我們介紹了如何在J-Flash中設(shè)置芯片的初始化序列,該功能令J-Flash軟件能夠適配更多類(lèi)型的芯片,進(jìn)而更好的滿(mǎn)足用戶(hù)需求。
審核編輯:湯梓紅
-
微控制器
+關(guān)注
關(guān)注
48文章
7334瀏覽量
150091 -
芯片
+關(guān)注
關(guān)注
450文章
49631瀏覽量
417112 -
初始化
+關(guān)注
關(guān)注
0文章
49瀏覽量
11740 -
SEGGER
+關(guān)注
關(guān)注
0文章
36瀏覽量
14063
原文標(biāo)題:如何在Segger J-Flash中設(shè)置芯片初始化序列?
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論