回复于 2018-06-02
2#
放一段我实际用的代码
#pragma arm section code = "RAMCODE"
void WriteFlash(unsigned int startAddress,unsigned short length,unsigned short *buf)
{
unsigned int parP;
unsigned int i;
parP=startAddress;
FLASH_Unlock();
FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);
FLASH_ErasePage(startAddress);
for(i=0;i<length && i<512;i++)
{
FLASH_ProgramHalfWord(parP,buf[i]);
parP+=2;
}
FLASH_Lock();
}
#pragma arm section code
这个编译的时候要改一下链接文件
这里是我用的sct文件 芯片是stm32f103c8t6
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x0000F000 { ; load region size_region
ER_IROM1 0x08000000 0x0000F000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00005000 { ; RW data
*.o(RAMCODE)
.ANY (+RW +ZI)
}
}
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖