今天调了一天的STM32IAP程序,,改了很多地方,就是一直不对~~到网上查了很多人的版本,下载下载发现也都是不对,用IAP下载的程序一运行就出错。真是极度绝望。没办法,又去网上查,后来到21IC的网络上发现有个网友写错了测试的例程,我一看自己的也写错,难怪会一直错误,原来不是IAP程序的问题,是测试程序的自身问题,真是忽略了这一点,由于我直接那来就是原先的测试程序,单独下进去没问题,但是用IAP方式时下载是需要设置中断向量的偏置给忘记了和KEIL的配置,就因为这个搞了我将近一天的时间。真是血的教训,发出来跟网友分享下,让大家引以为鉴~~我的IAP程序把下载的程序设置的起始地点是:0x,(根据IAP程序的大小而定,如果IAP大小为3320,则可以把起始点设置为0x)所以对APP的程序需要更改如下:intmain(void){SysClock_Init();delay_init(8);//延时初始化GPIO_Configuration();//部分端口初始化配置Usart_Init();//串口1初始化Adc_Init();//ADC初始化TWI_Initialize();//I2C引脚初始化Ds1302_Init(); LCD_Init();//设置中断向量表的位置在0xNVIC_SetVectorTable(NVIC_VectTab_FLASH,0x3000);while(1){KEIL也需要配置如下:注意看IROM1的起始地址是:0x上面的偏移量这个地址是要跟IAP程序里面的地址对应的;:另外我把ST官方的例程翻译了以下,看着英文不爽!!!谢了一个自己的测试例程代码~~大家需要的可以来下载,亲自测试过的,好用~~iub关于使用IAP升级步骤,由上面的步骤,我们已经将底层程序写好。将IAP程序写入STM32中,注意写入的时候将所有页面擦除。在RealviewMDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥RealviewMDK集成开发环境的优势,将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件是十分自然的想法。本文将详细的探讨这种转换方法。在详细的介绍这种方法之前,,因为在RealviewMDK中生成*.bin格式文件的工具正是它。:fromelf[options]input_file其中[options]包括的选项及详细描述见表一。表一fromelf工具的选项及描述表格选项描述选项描述--help显示帮助信息--vsn显示版本信息--outputfile输出文件(默认的输出为文本格式)--nodebug在生成的映象中不包含调试信息--nolinkview在生成的映象中不包含段的信息--bin生成PlainBinary格式的文件--m32生成Motorola32位十六进制格式的文件--i32生成Intel32位十六进制格式的文件--vh
STM32IAP程序升级方案 来自淘豆网m.daumloan.com转载请标明出处.