嵌入式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

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存