使用arduino開發環境來開發普通單片機開發板

       arduino開發板正常狀況下是經過在代碼中嵌入bootloader代碼,利用單片機的IAP功能經過USB口來實現程序下載。其實經過合理的設置產生程序的hex或者bin文件而後用下載器下載到單片機裏也能夠實現程序下載,這樣能夠利用arduino的開發環境和開源資料來對市面上其餘的普通單片機開發板進行程序開發。本文就以MapleIDE開發普通STM32單片機程序爲例來進行說明。php

       在arduino開發環境中若是在lib\preferences.txt文件最後一行增長build.path=「存儲路徑」,則按住shift編譯以後會在對應的文件夾裏產生hex或者bin文件。可是此文件因爲含有bootloader的啓動過程所以直接下載進單片機中是不能運行的,還須要作以下的設置:html

       1.在hardware\leaflabs\boards.txt中增長STM32F103RBT6開發板型的參數以下,參數能夠具體因單片機不一樣而修改git

mapleJTAG.name=LeafLabs Maple Rev 3+ to JTAGgithub

mapleJTAG.upload.file_type=bin
ui

mapleJTAG.upload.maximum_size=128000
spa

mapleJTAG.upload.ram.maximum_size=20000
htm

mapleJTAG.upload.flash.maximum_size=128000
開發

mapleJTAG.upload.usbID=1EAF:0003
get

mapleJTAG.upload.altID=1
flash

mapleJTAG.upload.uploader=dfu-util

mapleJTAG.upload.auto_reset=true

mapleJTAG.build.board=maple

mapleJTAG.build.mcu=STM32F103RB

mapleJTAG.build.family=cortex-m3

mapleJTAG.build.f_cpu=72000000L

mapleJTAG.build.core=maple

mapleJTAG.build.submdl=stm32f103

mapleJTAG.build.vect=VECT_TAB_BASE

mapleJTAG.build.linker=maple/jtag.ld

mapleJTAG.build.using=armcompiler

mapleJTAG.build.density=STM32_MEDIUM_DENSITY

mapleJTAG.build.error_led_port=GPIOA

mapleJTAG.build.error_led_pin=5

     2.注意maple\jtag.ld中關於程序存儲空間的關鍵內容以下:

MEMORY

{

  ram (rwx) : ORIGIN = 0x20000000, LENGTH = 20K

  rom (rx)  : ORIGIN = 0x08000000, LENGTH = 128K

}

       完成上述設置後就能夠進行程序開發,開發完程序後採用串口下載軟件便可將程序下載進STM32單片機中,注意STM32經常使用的MCU-ISP串口下載軟件有時候對.bin的文件支持並很差,此處推薦uISP for STM32的下載軟件。


bootloader參考資料:

  1. 解決方案:http://forums.leaflabs.com/topic.php?id=10278

  2. 另外一種解決方法: http://www.geek-workshop.com/thread-3355-1-1.html

  3. 源代碼:https://github.com/leaflabs/maple-bootloader  

  4. 官網介紹: http://leaflabs.com/docs/bootloader.html

相關文章
相關標籤/搜索