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

評(píng)論