許多微控制器在燒錄之前需要一個(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用戶手冊(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一欄可以添加注釋,用于記錄該行命令所要實(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的用戶手冊(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軟件能夠適配更多類型的芯片,進(jìn)而更好的滿足用戶需求。
審核編輯:湯梓紅
-
微控制器
+關(guān)注
關(guān)注
48文章
7957瀏覽量
155237 -
芯片
+關(guān)注
關(guān)注
460文章
52529瀏覽量
441345 -
初始化
+關(guān)注
關(guān)注
0文章
50瀏覽量
12119 -
SEGGER
+關(guān)注
關(guān)注
0文章
53瀏覽量
14500
原文標(biāo)題:如何在Segger J-Flash中設(shè)置芯片初始化序列?
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
STM32入門(mén)系列教程之三《如何使用J-Flash調(diào)試》
芯達(dá)STM32入門(mén)系列教程之二《如何使用J-Flash調(diào)試》
請(qǐng)問(wèn)IAR下載程序與J-FLASH ARM的差別是什么?
如何使用J-Flash軟件燒錄程序
STM32單片機(jī)是怎樣使用SEGGER J-Flash進(jìn)行燒錄的呢
AllinOne Flash Algorithm for J-Flash平臺(tái)使用方法
如何在Segger J-Flash中設(shè)置芯片初始化序列?
STM32入門(mén)系列教程之三《如何使用J-Flash調(diào)試》

jlink驅(qū)動(dòng)下載SEGGER J-FlASH ARM應(yīng)用程序免費(fèi)下載

如何使用J-Flash實(shí)現(xiàn)調(diào)試

Segger J-Flash下燒寫(xiě)遇到特定區(qū)域內(nèi)校驗(yàn)失敗的問(wèn)題
一個(gè)關(guān)于Segger J-Flash在Micron Flash固定區(qū)域下載校驗(yàn)失敗的故事
AN0016使用J-Flash實(shí)現(xiàn)對(duì)MM32芯片的燒錄(中文版)

評(píng)論