STM32怎么把程序存储在外部存储器执行
你这是把STM32当ARM9用呀,你可以看看ARM9,a8,a9的启动过程呀,你看看STM32有哪些功能么?就不要想这些,就算能那速度慢成渣了,本来主频就慢,还在外部执行,又浪费一些总线周期。之前我也想过,要在外部执行都是需要初始化外部存储器的,以模拟ARM9,A8,A9的启动过程,首先从STM32内部flash启动,里面写个Uboot,出初始化STM32的FMC或者FSMC接口上的norflash或者SRAM或者SDRAM,如果程序存在nandflash上,还要初始化nand,然后把nand拷贝到SDRAM或者norflash或者SRAM;然后uboot跳到拷贝程序的地方执行;STM32还要设置MPU,让总线可以访问到FMC或者FSMC的地址空间;这还是理论,更本没法实施,所有的地址控制都要自己手动操作,我想着都头痛了,而且自己又不对cortex-M3或者cortex-M4了解的很透彻,中间遇见的问题可想而知,你有足够的时间可以想想,但是那样还不如直接用cortexA系列,别人硬件就支持这些外部启动。。。
STM32芯片,如何将配置数据保存到Flash中?与程序一同写入Flash的吧? 请求大虾们帮助~谢谢!
ST网上有例子程序的
如果用的是STM32f407,看以下路径
stm32f4discovery_fw\STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\FLASH_Program
103的基本上差不多
注意一下,你的配置数据存放的地址不用包括在编译器link的范围之内,会出问题的。
例如:告诉编译器:flash从0x80000开始,长度0x1000,你的配置数据的存放地址可从0x81000开始。这个地址的flash编译器link的时候肯定不会用
stm32 大家真正产品用什么操作系统
STM32 8051
内核 Cortex-M3,32Bit@72MHz 51 Core,8Bit@2MHz Max(分频后)
1.25DMIPS 0.06DMIPS
地址空间 4GB 64KB
片上存储器 ROM:20K-1MB 2K-64K
RAM:8K-256K 128B-1K
外设 AD,DA,Timer,WWDG,IWDG, 三个定时器和一个串口
CRC,DMA,IIC,SPI,USART等
开发工具 UV4,更高级,且有标准C编译器 UV2,比较早了
操作系统 uClinux,uC/OS 基本不要想跑OS了.