linux 驱动编程配置(minis3c2440)

发布于:2025-02-21 ⋅ 阅读:(18) ⋅ 点赞:(0)

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 ,会对坏块信息做出标记,运行的时候就把这部分跳过去了