求助:stm32 用内部flash虚拟u盘进行IAP
现在我虚拟出来了(stm32f103c8t6) iap程序8k 虚拟出来是52k,格式化后32k(1024字节)
转跳程序.png (16.48 KB, 下载次数: 0)
下载附件
转跳程序
2014-8-21 21:14 上传
iap_load_app(0x08008000); 无法转跳,直接进入IAP
iap_load_app(0x08008800); 死机
我直接将app程序强制写进0x08008000,iap转跳成功(IAP设置转跳地址为08008000)..
求助..为啥直接放bin不能转跳.bin不是直接可以读取的文件?我找到bin真地址转跳不就行了?
有IAR的吗?
LZ 我现在用的是STM32F103VBT6 128K的应该怎么改啊?
试了一下
mass_mal.c 文件中
#define FLASH_SIZE 0xD000改为0x18000
进入IAP,格式化后可以认出76K的空间
APP程序如下
#include "stm32f10x.h"
void delayms(u16 tim)
{
u16 i;
while(tim--)
{
i = 1000;
while(i--);
}
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
while(1)
{
GPIO_ResetBits(GPIOE, GPIO_Pin_6);
delayms(500);
GPIO_SetBits(GPIOE, GPIO_Pin_6);
delayms(500);
}
}
编译设置和PDF文档中的一致IROM1 为 0x8008000。生成的bin文件放到U盘重启,不执行啊??
bin并不是在8000位置中 请看我全我帖子 用winhex查看实际地址
一周热门 更多>