嵌入式linux开发 (二十六) Flash管理(1) 芯片对Flash的管理

2024-05-27 16:18

本文主要是介绍嵌入式linux开发 (二十六) Flash管理(1) 芯片对Flash的管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 总述
根据加载方式,加载源有几种1.映射 // 硬件主动搬运 也可算在其中stm32的主flash // 完全映射s3c2440的nand // 4KB搬运2.bootrom 加载 进 sram dramexynos4412 的 sd卡 搬运到sram // 256KB搬运 i.mx6ull  的 sd卡  搬运到 dram // 几乎不限制大小(打下根据sd卡和dram最小值定) 3.XIP on nors3c2440的nor
芯片对flash的驱动
只要是操作了flash,那么肯定有时序出来,而这种时序如果不是类ram接口
那么肯定是要驱动的.
  • stm32的映射是什么原理
stm32 主Flash支持 XIP ,且在执行时就是 XIP
stm32内部的主Flash 是 类ram接口?
  • 为什么有的rom在 memory map 里面,且可以用地址来直接访问
例如bootrom就被映射到了 memory map 里面
srom 是不是也是因为类ram接口,是不是也是XIP.
  • s3c2440 的搬运是什么原理(无代码,怎么实现搬运)
1. 类ram接口的norflash的搬运是不是就是映射2. nand 的 搬运是怎么回事?
  • XIP on Nor 是什么原理
https://blog.csdn.net/ffdia/article/details/87437872
https://blog.csdn.net/segments/article/details/7623613
https://www.docin.com/p-731715109.htmlNand 也可以 XIP ,请查看https://wenku.baidu.com/view/c1229a22a32d7375a4178012.html
NorFlash 有自己的数据和地址总线,因此可采用类似RAM的随机访问。
NorFlash的特点是芯片内执行(XIP: eXecute In Place),
这样应用程序应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。
如果uboot中的ro段就可以直接在 NorFlash上运行,只需要把rw段和zi段拷贝到RAM中运行即可。
  • bootrom 中集成了哪些flash的驱动
这要看bootrom 支持哪些 二级启动 设备.
一般有
USB
eMMC
SD
NAND
SPI Nor Flash
总结
  • 分类
1. 在memory map 里的flash 可以通过地址访问,这些flash有类ram接口,一般这种flash 被 用作 存储  boot代码编译生成的二进制文件
2. 不在memory map 里的flash需要通过驱动访问一般需要考虑1.硬件接口及驱动// 在之前的 嵌入式linux开发  FLASH(3) 系列中,已经讲述了接口及驱动// stm32的主flash 存在于soc芯片内,应该是类ram接口,用户存储boot代码.// s3c2440 的 nor flash 存在于soc芯片外,也是类ram接口,用户存储boot代码2.是否需要文件系统管理.// 类sram接口的flash 一般是用于存储boot代码的,所以不需要文件系统管理// s3c2440 的 nand// i.mx6ull 可以 sd nand emmc 不用来存储boot代码,而且空间较大,可以用文件系统管理// 为什么要用文件系统管理,因为方便.封装 flash空间的访问 为 对 文件的访问,省掉上层代码对flash空间布局的考虑.// 用文件系统管理的本质是, 封装flash操作接口,提供文件操作接口.

这篇关于嵌入式linux开发 (二十六) Flash管理(1) 芯片对Flash的管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007969

相关文章

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1