使用arduino开发环境来开发普通单片机开发板

       arduino开发板正常情况下是通过在代码中嵌入bootloader代码,利用单片机的IAP功能通过USB口来实现程序下载。其实通过合理的设置产生程序的hex或者bin文件然后用下载器下载到单片机里也可以实现程序下载,这样可以利用arduino的开发环境和开源资料来对市面上其他的普通单片机开发板进行程序开发。本文就以MapleIDE开发普通STM32单片机程序为例来进行说明。

       在arduino开发环境中如果在lib\preferences.txt文件最后一行增加build.path=“存储路径”,则按住shift编译之后会在对应的文件夹里产生hex或者bin文件。但是此文件由于含有bootloader的启动过程因此直接下载进单片机中是不能运行的,还需要做如下的设置:

       1.在hardware\leaflabs\boards.txt中增加STM32F103RBT6开发板型的参数如下,参数可以具体因单片机不同而修改

mapleJTAG.name=LeafLabs Maple Rev 3+ to JTAG

mapleJTAG.upload.file_type=bin

mapleJTAG.upload.maximum_size=128000

mapleJTAG.upload.ram.maximum_size=20000

mapleJTAG.upload.flash.maximum_size=128000

mapleJTAG.upload.usbID=1EAF:0003

mapleJTAG.upload.altID=1

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

你可能感兴趣的:(使用arduino开发环境来开发普通单片机开发板)