首页 > 编程知识 正文

8051单片机(8031单片机)

时间:2023-05-03 06:50:50 阅读:94002 作者:1696

1 .怎么理解常说的“可以用单片机的norflash执行代码”这句话?

CPU取值、解码并执行。

的哪些媒体可以运行程序,实际上就是CPU可以从那里获取指示,供以后解码和运行。

2 .单片机一般用内部norfalsh执行代码

Soc读取内部的NorFlash时可以进行总线访问,这对于Soc来说更方便,从Soc直接用地址方式进行访问,而且NorFlash不需要初始化,定时很简单。

PS:NAND闪存接口的管理很复杂,需要专用的控制器。

3 .单片机内部的norflash中执行代码面临的困境

在用ST制作GUI界面时,最大的问题是芯片内部的flash最多只有2米。 在现在的时代,2米也放不下几张照片。

如果讨厌你的单片机的norflash不够大呢? 因为不管你换到多么大的单片机norflash都没什么大不了的:

在方案1.ST中,使用添加到M7内核芯片的QSPI控制器,使用户可以将代码放置在外部存储器上并当场执行。

方案2 .使用SDRAM将代码运送到SDRAM内执行。

与场景1对应的方式称为XIP。

与方案2对应的方式称为BootROM,顾名思义,是从ROM向RAM输送代码并执行的,所以称为BootROM。

4. norflash不够的解决方案1 -- XIP

(1) .使用外部闪存(外部QSPI或FMC-NOR闪存)“当场执行”。

)2) .用户APP的代码必须链接到目标的执行内存地址(外部QSPI或FMC-NOR闪存)。

(3) .需要内存映射支持

上述(1)意味着XiP可以直接在外部闪存中执行代码,称为“就地”,使得芯片可以直接在内部flash的地址0x0800 0000上执行。

上述)2)表示在编译用户APP应用程序的代码时,将链接目标更改为外部闪存的地址。 例如,如果STM32 H7系统在系统总线上为QSPI Flash分配的地址为0x9000 0000,则代码的地址将更改为0x9000 0000。

XIP模型的操作流程

XiP的启动方法实际上利用了引导加载器。 该引导加载器显示了一种非常不同的方法,即将qspi闪存映射到名为系统总线0x9000 0000的地址。

映射后,访问0x9000 0000地址时,系统总线会自动去读取QSPI FLASH 0地址的数据。 这个时候自动去读!

例如,uint32_ttemp=*(uint32_t* )0x90000000 )可以直接获取QSPI FLASH的第0到第3个地址数据。

映射完成后,关闭所有中断和缓存,然后跳转到用户程序的运行。

通过利用STM32H7的QSPI、XIP方式,可以在W25QXX系列芯片内运行程序。

5 . norflash不足的解决方案2 -- BootROM

(1) .从闪存启动,配置外部RAM存储器(SDRAM或SRAM ),

首先,将用户APP应用程序的二进制文件(sd卡或SPI -闪存)从闪存复制到外部SDRAM或外部SRAM,然后跳转到用户APP应用程序并执行。

)2) .用户APP的代码应链接到目标的执行内存地址(外部SDRAM或SRAM )。

该模型是通用的,适用于FMC能够驱动外部RAM的所有ST芯片。 当然链接地址一定是外部RAM存储器的地址。 关于闪存,可以是任何存储器,也可以是SPI闪存、TF卡、I2C存储器。

例如,STM32f407ZGSRAM(32MB ) TF卡将程序编译成二进制文件并放入TF卡中。 每次将新程序更新为TF卡时,要运行的程序都会更新。 感觉就像用Linux TF卡启动一样。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。