娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

Archlinux下 stm32 燒寫工具配置

發布者:靜心靜氣最新更新時間:2024-12-31 來源: jianshu關鍵字:stm32  燒寫工具  配置 手機看文章 掃描二維碼
隨時隨地手機看文章

1. 使用的開發板

使用的開發板是好幾年好幾年前買的了,板子一直在家里睡覺。最近閑著沒事,所以打算學習一下stm32.
板子是普中STM32-PZ6806L開發板。開發板的圖見下

puzhongkaifaban.png

2. stm32 燒入程序原理

我們這里使用ISP(In-System Programming)燒入.
ISP 燒入使用串口.
這個開發板子提供了上圖的6的位置是一個miniUSB,5的位置是一個usb轉串口的芯片。5,6的原理圖見下:

yuanli.png

其中串口的 DTR引腳控制STM32的重置。

RTS引腳控制STM32的boot選擇。

我們要想燒入程序:要把開發版上面的34的位置的跳冒

BOOT0連接到3.3V

BOOT1連接到GND。

(PS,我試了試他們都連接到GND也是可以用的。。。)

3. 下載 stm32flash 程序

git clone https://github.com/ARMinARM/stm32flash.git
make 
make install

注意:

  1. 上面可能執行make的時候會出現編譯錯誤。因為archlinux是滾動更新的。不能保證代碼每次都編譯通過。我這次編譯就出現了錯誤。但是也很好解決,就不多說了。

  2. make install 命令會默認安裝stm32flash命令到/usr/local下面。如過不想安裝到這個里面請修改Makefile。

  3. 在 Makefile中也指定了man pages安裝到哪里了。請參考 man page的配置,去配置man手冊。(ps:如果不需要手冊,這一步不需要考慮了)

4. 測試stm32flash程序能不能正常工作

我們把開發板通過usb插入電腦。并查看man stm32flash的配置,發現可以直接執行stm32flash 查看設備信息。 如下:

[vicking@archlinux ~]$ ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB2
[vicking@archlinux ~]$ stm32flash /dev/ttyUSB2
stm32flash 0.4

http://stm32flash.googlecode.com/

Interface serial_posix: 57600 8E1
Failed to init device.

喔吼,執行失敗了。查看man stm32flash我們可以看到如下配置:應該是通過rst和boot兩個口去配置芯片進入和退出bootloader

BOOTLOADER GPIO SEQUENCE

       This feature is currently available on Linux host only.


       As explained in ST application note AN2606, after reset the STM32 will execute either the application pro‐

       gram  in user flash or the bootloader, depending on the level applied at specific pins of STM32 during re‐

       set.


       STM32 bootloader is automatically activated by configuring the pins BOOT0='high' and BOOT1='low' and  then

       by  applying  a  reset.  Application program in user flash is activated by configuring the pin BOOT0='low'

       (the level on BOOT1 is ignored) and then by applying a reset.


       When GPIO from host computer are connected to either configuration and reset pins of STM32, stm32flash can

       control the host GPIO to reset STM32 and to force execution of bootloader or execution of application pro‐

       gram.


       The sequence of GPIO values to entry to and exit from bootloader mode is provided with command line option

       -i GPIO_string.


       The format of GPIO_string is:

              GPIO_string = [entry sequence][:[exit sequence]]

              sequence = [-]n[,sequence]

       In  the  above  sequences, negative numbers correspond to GPIO at 'low' level; numbers without sign corre‐

       spond to GPIO at 'high' level.  The value 'n' can either be the GPIO number on  the  host  system  or  the

       string  'rts',  'dtr' or 'brk'. The strings 'rts' and 'dtr' drive the corresponding UART's modem lines RTS

       and DTR as GPIO.  The string 'brk' forces the UART to send a BREAK sequence on TX line;  after  BREAK  the

       UART is returned in normal 'non-break' mode.  Note: the string '-brk' has no effect and is ignored.


       As example, let's suppose the following connection between host and STM32:

       ? host GPIO_3 connected to reset pin of STM32;

       ? host GPIO_4 connected to STM32 pin BOOT0;

       ? host GPIO_5 connected to STM32 pin BOOT1.


       In  this case, the sequence to enter in bootloader mode is: first put GPIO_4='high' and GPIO_5='low'; then

       send reset pulse by GPIO_3='low' followed by GPIO_3='high'.  The corresponding string for  GPIO_string  is

       '4,-5,-3,3'.


       To exit from bootloade and run the application program, the sequence is: put GPIO_4='low'; then send reset

       pulse.  The corresponding string for GPIO_string is '-4,-3,3'.


       The complete command line flag is '-i 4,-5,-3,3:-4,-3,3'.



查看文檔后,我們這個開發板子上面進入bootloader和離開bootloader的序列應該如下

rts,dtr,-dtr  ## 進入bootloader序列: rts高電平,dtr高電平,dtr 低電平
-rts,dtr,-dtr ## 退出bootloader序列: rts低電平,dtr高電平,dtr 低電平

所以,我們執行我們根據開發板的原理圖和這里的手冊嘗試執行如下命令。發現就成功了。

注意:

  1. 我的芯片是stm32f1, 而stm32w的配置可能有所不同。

  2. 芯片進入和退出bootloader的順序設置可能跟你的ch34x(并轉串)芯片和stm32芯片連接不同而有不同的設置。自己可以測試出自己的序列。

[vicking@archlinux ~]$ stm32flash  -i rts,dtr,-dtr:-rts,dtr,-dtr /dev/ttyUSB2

stm32flash 0.4


http://stm32flash.googlecode.com/


Interface serial_posix: 57600 8E1

Version      : 0x22

Option 1     : 0x00

Option 2     : 0x00

Device ID    : 0x0414 (High-density)

- RAM        : 64KiB  (512b reserved by bootloader)

- Flash      : 512KiB (sector size: 2x2048)


上面讀取的是設備信息,反正我暫時也看不懂,就先不說了。


5. 測試寫入程序

stm32flash -b 9600 -i rts,dtr,-dtr:-rts,dtr,-dtr -w newhelloworld.hex -v -g 0x0 /dev/ttyUSB1

stm32flash 0.4


http://stm32flash.googlecode.com/


Using Parser : Intel HEX

Interface serial_posix: 9600 8E1

Version      : 0x22

Option 1     : 0x00

Option 2     : 0x00

Device ID    : 0x0414 (High-density)

- RAM        : 64KiB  (512b reserved by bootloader)

- Flash      : 512KiB (sector size: 2x2048)

- Option RAM : 16b

- System RAM : 2KiB

Write to memory

Erasing memory

Wrote and verified address 0x08000bbc (100.00%) Done.


Starting execution at address 0x08000000... done.


-w:指定要寫入的hex文件,
-v:表示校驗寫入的數據
-g:表示從哪個地址執行程序


6. 其他

  1. 上面燒寫環境是在archlinux進行的。但是配置過程好像跟linux發行版本沒有什么太大的關系。唯一可能失敗的地方應該就是編譯stm32flash的地方。

  2. 另外串口/dev/ttyUSB2這樣的串口設備,普通用戶可能沒有辦法使用。需要root權限。

下面給出archlinux 下面非root用戶也可以使用的方法。

[vicking@archlinux ~]$ ls -l /dev/ttyUSB2

crw-rw---- 1 root uucp 188, 2 Jul 2日 01:36 /dev/ttyUSB2 ## 發現設備文件屬于uucp組

[vicking@archlinux ~]$ sudo usermod -a -G uucp vicking ##把我們當前的用戶加到uucp組

[sudo] vicking 的密碼:

[vicking@archlinux ~]$ reboot ## 重啟生效


  1. 如果你的archlinux 配置了AUR,那么也可以從AUR倉庫下載

yay -S stm32flash

查看man stm32flash 其使用方法與上面的稍微有點不同。現在的序列為-i rts,,,-dtr,,,dtr:-rts,,,-dtr,,,dtr。 其中每個逗號代表兩個信號之間相隔100ms。當然具體的配置,要查看你們電腦里面的man pages。不能一概而論。多嘗試嘗試。


關鍵字:stm32  燒寫工具  配置 引用地址:Archlinux下 stm32 燒寫工具配置

上一篇:【STM32調試(三)】采集bmp圖像保存在SD卡
下一篇:STM32通過rosserial接入ROS通訊開發

推薦閱讀最新更新時間:2025-04-17 15:54

新一代燒寫工具 - STM32CubeProgrammer
STM32CubeProgrammer(STM32CubeProg)是STM32微控制器的專用編程工具。 STM32用戶都知道,當完成程序調試,需要對芯片進行程序代碼燒錄編程,一般會有三個選擇: 通過調試接口【JTAG/SWD】來燒寫程序,一般要使用STLink Utility或STVP工具軟件來完成; 通過UART接口來燒寫程序,需要下載基于PC端的flash 燒錄工具軟件STM32 Flash loader demonstrator配合; 通過USB接口來燒寫程序,需下載USB DfuSe工具軟件來實現。 2017年底,ST推出了多合一燒錄工具STM32CubeProgrammer,以其高集成度支持上述三類編
[單片機]
STM32 LL庫中斷配置引腳外部中斷的方式
中斷原理圖 很多情況可以產生中斷,開發者可以在CubeMx中NVIC選單、通訊模塊選單處配置。請自行探索;部分中斷有關的內容在模塊講解時·將會提到。 ※啟用中斷后,注意在System Core- NVIC- Code Generation中勾選生成IRQ Handler和 Select for init Sequence Ordering。 ※生成的中斷函數定義在stm32fxxx_it.h和stm32fxxx_it.c中,向函數中填要執行的代碼即可。 對于外部中斷的事件分配,多個引腳將被分配到中斷事件(具體可以參考文檔),若需要區分則須在中斷程序內寫判斷。判斷方式之后給到 配置引腳外部中斷的方式: ①在引腳圖上選中需
[單片機]
<font color='red'>STM32</font> LL庫中斷<font color='red'>配置</font>引腳外部中斷的方式
教你如何配置STM32引腳
stm32是一種32位的單片機。單片機是嵌入式系統中最常用的核心部件,stm32本質上也是一種單片機。STM32系列基于專門要求高性能,低成本,低功耗的嵌入式應用專門設計的ARM Cortex-M0,Cortex-M1,Cortex-M3,Cortex-M4,Cortex-M7等。其中Cortex-M0主打的是低功耗和混合信號的處理,M3主要用來替代ARM7,重點側重能耗和性能的均衡,而M7則重點放在高性能控制運算領域。本文將教你如何配置STM32的引腳。 一、推挽輸出: 可以輸出高、低電平,連接數字器件;推挽結構一般是指兩個三極管分別受兩個互補信號的控制,總是在一個三極管導通的時候另一個截止。高低電平由IC的電源決定。 推挽
[單片機]
英飛凌推出適用于物聯網設備進行非接觸式驗證及安全配置的NFC I2C 橋接標簽
【2024年6月6日,德國慕尼黑訊】 物聯網設備的數量正在迅速增加并應用到各行各業之中。隨著智能設備數量上漲,用戶對設備配置和配對等操作所應具有的簡易性之要求也一并提高 。為此,英飛凌科技股份公司推出了OPTIGA? Authenticate NBT產品。這是一款高性能的NFC I2C橋接標簽產品,適用于對物聯網設備進行單點驗證和安全配置等功能的實現。 這款產品是市面上唯一一款使用非對稱加密進行簽名及驗簽操作、并獲得NFC Forum Type 4類認證的標簽產品 。OPTIGA? Authenticate NBT通過使用NFC(近場通信)技術,為物聯網設備與支持非接觸式讀卡功能的智能設備(如智能手機)間的相互通信提供便利,實現該
[物聯網]
英飛凌推出適用于物聯網設備進行非接觸式驗證及安全<font color='red'>配置</font>的NFC I2C 橋接標簽
關于《s3c2416裸跑環境配置》一文的一些補充
《s3c2416裸跑環境配置》一文已經發表很長一段時間了,前兩天突然收到郵件提示有人回復,原來網友jxyggg按照文中所講去調試,卻始終不能成功。問題的描述見原文后的回復,經過QQ交流,問題得到解決,下面簡單描述下問題及解決方法。 調試界面 如上圖所示,出問題的調試界面顯示,“ROM”中的代碼與編譯器的代碼根本不是一回事,全是跳轉指令,看上去似乎是個中斷向量表。可以肯定,代碼沒有被寫進0x00000000開始的“ROM”。但是在本人開發板上測試,發現jxyggg給的工程能正常調試,最讓人揪心的問題往往是這些似是而非的問題。通過交流,發現jxyggg同學把開發板啟動開關打到SD位置,原因是擔心調試會影響NAND里面的ubo
[單片機]
關于《s3c2416裸跑環境<font color='red'>配置</font>》一文的一些補充
單片機---ESP8266Wifi SmartConfig一鍵配置(一)
SmartConfig 現在我們在購買很多智能設備的時候,需要讓它聯網,但它沒有什么有效的輸入手段,例如鍵盤屏幕啥的,于是就出現了所謂的一鍵聯網,通過APP,將wifi名稱和密碼發送出來,走的是一種廣播或者組播的手段,智能設備上電處于混雜模式,能夠接收到這些數據,隨后就可以聯網了。 就是所謂的,通訊,基本靠喊。 ESP8266一鍵聯網 準備代碼 搭建環境什么的可以參考 然后就可以下載到最新的版本,里面就包含了一鍵聯網的demo程序。 配置好工作路徑,編譯代碼,就可以燒寫進ESP8266開發板了。上電進入smartconfig模式 官網的教程無比詳細,就喜歡這種產品 APP準備 樂鑫提供了安卓版本的配置工具,
[單片機]
單片機---ESP8266Wifi SmartConfig一鍵<font color='red'>配置</font>(一)
一加 10R 主要配置解密,天璣 8100+150W 有線充電
早些時間,一加官方已經正式宣布旗下新機將會支持 150W 有線充電功能,同時近日有關一加 10R 的相關爆料開始增多。而在近日外媒博主 Yogesh Brar 正式曝光了一加 10R 的部分主要配置。 該消息源表示,一加 10R 將搭載 6.7 英寸 1080P 分辨率、120Hz 刷新率 E4 AMOLED 挖孔屏,處理器為聯發科天璣 8100,后置 5000 萬像素索尼 IMX766+800 萬超廣角 +200 萬微距三攝方案。輔以 4500mAh 電池,支持 150W 有線充電功能。同時取消了一加經典的三段式側鍵設計。 而根據最新渲染圖來看,一加 10R 背面造型設計與近期發布的 Realme GT Neo 3 高度相似
[手機便攜]
華為P50 Pocket折疊屏手機配置:麒麟9000+6.8寸內屏 不支持5G
華為已經官宣在12月23日的冬季旗艦新品發布會上推出首款縱向形態折疊屏手機——華為P50 Pocket,關曉彤代言,外觀已經揭曉,現在硬件配置也曝光了,還是熟悉的麒麟9000,依然沒有5G。   從定位上來看,P50 Pocket不會是一款追求性能的折疊屏手機,不過整體配置依然很不錯,處理器是麒麟9000,但只支持4G網絡,現在還沒有5G。   屏幕方面,內屏是6.8寸,外屏有個1寸圓形副屏,可以當自拍取景器,還可以展示來電信息、時間、天氣等信息。   電池是4100mAh容量,搭配66W快充。   拍照方面,P50 Pocket后置三攝,主攝是IMX766傳感器,5000萬像素,還有1300萬像素超廣及800萬像素長焦,
[手機便攜]
華為P50 Pocket折疊屏手機<font color='red'>配置</font>:麒麟9000+6.8寸內屏 不支持5G
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 资溪县| 肥东县| 武穴市| 宿州市| 炎陵县| 滁州市| 惠州市| 邵武市| 兴仁县| 曲周县| 噶尔县| 利津县| 当雄县| 崇阳县| 九龙城区| 横山县| 崇明县| 兴宁市| 宜宾市| 佛教| 迭部县| 左权县| 青阳县| 慈利县| 澄江县| 南投县| 武夷山市| 定结县| 宁安市| 丘北县| 新竹县| 荥经县| 兴和县| 格尔木市| 赣州市| 新化县| 大关县| 老河口市| 渭南市| 杂多县| 莎车县|