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