当前位置: 首页 > article >正文

linux 驱动编程配置(minis3c2440)

1.介绍

1.

启动过程:启动u-boot------>>启动linux内核----->>挂载根文件系统

2.

uboot是一个裸机程序,是一个bootloader,用于启动linux系统以及系统初始化

ubootloader主要完成了哪些任务:1. 初始化异常向量表; 2. 初始化工作模式; 3. 初始化栈指针寄存器; 4. 初始化时钟; 5. 初始化串口等必要的外设。
还做了以下工作:1.关闭MMU内存管理单元(将虚拟地址转换为物理地址); 2. 关闭DCache高速缓冲存储器(存储cpu需要处理的数据); 3. 初始化sdram; 4. 初始化nand flash; 5. 初始化网卡并集成一些必要的协议,如tcp,tftp等; 6. 提供一个类似于linux那样的终端,方便与操作人员互动; 7. 能够设置并保存一些参数; 8. 能够复制linux内核程序到指定的内存空间,并引导系统运行。

3.存储器简单介绍

SDRAM(同步动态随机存取存储器),同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写,简单的说,它就是cpu使用的外部内存,即我们常说的内存条。

SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,速度比SDRAM快,一般用作高速缓冲存储器(Cache)。

norflash:非易失闪存,是一种外部存储介质,芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中,由于它有地址总线,cpu可以直接从norflash中取指,直接从FLASH中运行程序,但是工艺复杂,价格比较贵,容量较小(1~4M),NOR的传输效率很高

nandflash:它也是非易失闪存(掉电不丢失)的一种,但是它虽然有数据总线,但是没有地址总线,所以cpu不能直接从nandflash中取指运行,由于它价格便宜,所以常常用来存储大量数据,和我们常说的硬盘类似。

4.介绍启动方式

由于ram掉电丢失,只能将程序保存在rom中,所以可以选择norflash 或者nandflash启动

1.nandflash启动

1.将bootloader烧到nandflash0x0000,
2.上电后将nandflash前4k数据搬运到sram(一般用作cache)4k内容里面的指令将会完成以下几个动作:
1.硬件设备初始化
2. 加载U-Boot第二阶段代码到SDRAM空间
3. 设置好栈
4. 跳转到第二阶段stage2代码入口
3.将整个uboot放到sdram

2.norflash启动

1.将bootloader烧到norflash0x0000,

2.运行uboot将整个uboot放到sdram

2.启动uboot

1使用jlink将uboot下到板子里面

使用Jlink-flash:打开J-flash-----file-New project(已经创建好的工程s3c2440.jflash)--open data file(ubbot-bin经编译好的二进制文件)-----Target----connect-Target--Production 

2.设置minicom—串口连接终端软件

1.sudo minicom -s进入设置界面
2.选择第三项,修改串口设备名,波特率等
在这里插入图片描述
3.进入minicom
sudo minicom
在这里插入图片描述

查看nanflash坏块信息:nand bad,

擦除整片nandflash:nand erase.chip ,会对坏块信息做出标记,运行的时候就把这部分跳过去了


http://www.kler.cn/a/554356.html

相关文章:

  • Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek简单调用示例
  • QT多线程编程基础
  • Android 11.0 WiFi连接默认设置静态IP地址功能实现
  • 跟李沐学AI:InstructGPT论文精读(SFT、RLHF)
  • 如何在Java爬虫中设置动态延迟以避免API限制
  • 缓存-算法
  • 6. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Ocelot 网关--概念与简单入门
  • uniapp多端适配
  • 【数据分享】2000—2024年逐月归一化植被指数(NDVI)栅格数据(免费获取/全国/分省)
  • 【JavaEE进阶】数据库连接池
  • web网络安全:跨站脚本攻击(XSS)
  • 知识库-查看知识详情接口
  • 图论 之 DFS
  • C/C++面试知识点总结
  • 2.20学习
  • 《Operating System Concepts》阅读笔记:p50-p61
  • 基于 Flask 与 MySQL 构建简单的博客系统
  • 面试基础--分布式任务调度系统设计方案
  • 数据结构:广义表( Generalized List)及其实现
  • SpringMVC的基本使用