您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > STM32IAP程序升级方案
今天调了一天的STM32IAP程序,,改了很多地方,就是一直不对~~到网上查了很多人的版本,下载下载发现也都是不对,用IAP下载的程序一运行就出错。真是极度绝望。没办法,又去网上查,后来到21IC的网络上发现有个网友写错了测试的例程,我一看自己的也写错,难怪会一直错误,原来不是IAP程序的问题,是测试程序的自身问题,真是忽略了这一点,由于我直接那来就是原先的测试程序,单独下进去没问题,但是用IAP方式时下载是需要设置中断向量的偏置给忘记了和KEIL的配置,就因为这个搞了我将近一天的时间。真是血的教训,发出来跟网友分享下,让大家引以为鉴~~我的IAP程序把下载的程序设置的起始地点是:0x8003000,(根据IAP程序的大小而定,如果IAP大小为3320,则可以把起始点设置为0x8003400)所以对APP的程序需要更改如下:intmain(void){SysClock_Init();delay_init(8);//延时初始化GPIO_Configuration();//部分端口初始化配置Usart_Init(115200);//串口1初始化Adc_Init();//ADC初始化TWI_Initialize();//I2C引脚初始化Ds1302_Init();LCD_Init();//设置中断向量表的位置在0x8003000NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x3000);while(1){KEIL也需要配置如下:注意看IROM1的起始地址是:0x8003000上面的偏移量这个地址是要跟IAP程序里面的地址对应的;下面是IAP程序里面的定义common.h:另外我把ST官方的例程翻译了以下,看着英文不爽!!!谢了一个自己的测试例程代码~~大家需要的可以来下载,亲自测试过的,好用~~iub关于使用IAP升级步骤,由上面的步骤,我们已经将底层程序写好。将IAP程序写入STM32中,注意写入的时候将所有页面擦除。在RealviewMDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥RealviewMDK集成开发环境的优势,将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件是十分自然的想法。本文将详细的探讨这种转换方法。在详细的介绍这种方法之前,先了解一下ARM公司的RVCT开发套件中的fromelf.exe转换工具是十分必要的,因为在RealviewMDK中生成*.bin格式文件的工具正是它。fromelf.exe转换工具的语法格式如下:fromelf[options]input_file其中[options]包括的选项及详细描述见表一。表一fromelf工具的选项及描述表格选项描述选项描述--help显示帮助信息--vsn显示版本信息--outputfile输出文件(默认的输出为文本格式)--nodebug在生成的映象中不包含调试信息--nolinkview在生成的映象中不包含段的信息--bin生成PlainBinary格式的文件--m32生成Motorola32位十六进制格式的文件--i32生成Intel32位十六进制格式的文件--vhx面向字节的位十六进制格式的文件--baseaddr设置m32,i32格式文件的基地址--text显示文本信息-v打印详细信息-a打印数据地址(针对带调试信息的映象)-d打印数据段的内容-e打印表达式表printexceptiontables-f打印消除虚函数的信-g打印调试表printdebugtables-r打印重定位信息-t打印字符串表-y打印动态段的内容-z打印代码和数据大小的信息在掌握了fromelf转换工具的语法格式以后,下面将介绍它在RealviewMDK中的使用方法:1.新建一个工程,例如Axf_To_Bin.uv2;2.打开OptionsforTarget‘Axf_To_Bin’对话框,选择User标签页;3.构选RunUserProgramsAfterBuild/Rebuild框中的Run#1多选框,在后边的文本框中输入D:\Keil\ARM\BIN40\fromelf.exe--bin-o./obj/Axf_To_Bin.bin./obj/Axf_To_Bin.axf命令行;这里有个地方容易搞错,那就是fromelf.exe的地址,首先你得Keil不一定装在D盘,先把Keil安装地址改好,其次KeilUV4的地址是上面那BIN40文件夹里的地址,但是KeilUV4下fromelf.exe的地址是D:\Keil\ARM\BIN40\fromelf.exe--bin-o./obj/Axf_To_Bin.bin./obi/Axf_To_Bin.axf但是一直提示axf文件路径不对无法打开4.重新编译文件,在./obj/文件夹下生成了Axf_To_Bin.bin文件。经过上述4步的操作以后,将得到我们希望的Axf_To_Bin.bin格式的文件下一步,如果使用的是超级终端,设置好参数后才可使用,根据程序中的波特率进行设置,流控制选择无。
本文标题:STM32IAP程序升级方案
链接地址:https://www.777doc.com/doc-2850691 .html