
u-boot
Asymptoteee
菜鸟菜鸟
展开
-
详解sd协议以及裸机和u-boot中的sd卡驱动(2)
3. sd卡驱动3.1 引入经过第2章我们知道,要想实现读写sd卡,需要按照sd协议规定的基本传输单位(命令、响应、数据)以及流程(初始化、读、写),向sd卡发送信号或者从sd卡接收信号。为了简化cpu的操作,人们在soc内部设计了一个sd控制器,这个sd控制器专门按照sd规定的协议进行收发信号,并把我们上述提到的基本传输单位命令、响应以及数据的内容简化到一个个寄存器,比如s3c2440内部的sd控制器中包含有:SDICmdArg寄存器:用来保存命令的参数,当我们需要发送命令到sd卡时,对于命令的原创 2020-07-18 00:01:28 · 1786 阅读 · 0 评论 -
详解sd协议以及裸机和u-boot中的sd卡驱动(1)
1. 引入1.1 使用场景对于sd卡的使用,相信大家都已经很是熟悉:无文件系统首先调用初始化函数,然后便可以调用读写函数进行读写扇区的操作,但是更多的使用场景是在文件系统之上。有文件系统pc端,以windows为例:将sd卡(或通过usb读卡器)插在电脑的插槽里面,然后出现一个sd卡的盘符,点进去便可以访问里面的文件;开发板:将sd卡插在开发板的插槽里面,进入linux根文件系统的shell,执行mount命令挂载在某个目录下,然后进入该目录,便可以访问里面的文件;原创 2020-07-17 23:57:31 · 1093 阅读 · 0 评论 -
站在芯片原厂角度移植最新u-boot 2020.07到jz2440开发板(4)(全部驱动使用设备树与dm设备模型)
8. 编写串口驱动终于开始进行驱动的移植与编写了!提到驱动,在最近几年的u-boot版本中,uboot引入了驱动模型(driver model),那具体是什么呢?各位别急,我们之后的每一个驱动都将使用这种驱动模型进行编写,那现在先看比较简单的串口驱动,从实际的驱动中一步步的了解驱动模型dm。8.1 驱动代码首先在drivers/serial目录下新建一个文件serial_s3c2440.c,全部内容如下:/* SPDX-License-Identifier: GPL-2.0+ *//* * (原创 2020-07-02 18:44:11 · 948 阅读 · 1 评论 -
站在芯片原厂角度移植最新u-boot 2020.07到jz2440开发板(3)(全部驱动使用设备树与dm设备模型)
6. 初步编译终于可以尝试编译了,这里关于交叉编译器的设置就不做介绍了,相信大家应该都会的,只不过需要注意的是高版本的u-boot同样需要高版本的编译器。好的,执行如下命令,指定编译器、cpu架构,开始进行编译,但是,又有问题了,根据上述信息,我们还需要配置CONFIG_SYS_TEXT_BASE,这是u-boot的链接地址,我们编译好u-boot后要把可执行文件复制到内存的这个地址上才行,好,我们在jz2440_defconfig中加上这个配置,CONFIG_ARM=yCONFIG_TARGET原创 2020-07-02 18:37:46 · 1022 阅读 · 0 评论 -
站在芯片原厂角度移植最新u-boot 2020.07到jz2440开发板(2)(全部驱动使用设备树与dm设备模型)
5. 初步配置5.1 引入根据我们上述的分析,arm < arm920t < samsung < s3c2440 < smdk2440是依次后者包含前者的关系,也只有到了最后的开发板级别,我们才能在此基础上面做出具体的项目产品,想一想,我们只有一个arm核、一个soc芯片可以做什么?答案是什么也做不了,因为它不满足一个微型计算机系统构成所必需的各种部件。首先,我们需要明确的是,我们移植的目标是开发板级别,所以我们第一步应该关心的就是board/samsung目录。但是该版本的u原创 2020-07-02 18:34:15 · 1043 阅读 · 2 评论 -
站在芯片原厂角度移植最新u-boot 2020.07到jz2440开发板(1)(全部驱动使用设备树与dm设备模型)
1. 概述1.1 缘由最近在待业,由于之前的工作是在一个初创的芯片原厂做底层驱动开发,所以最近想着能不能以一个芯片原厂的角度移植最新的u-boot到jz2440开发板呢?于是便有了这篇文章。整篇文章遵循着以问题为导向的讲解方式,重实践,基本没有原理性的知识,并且从零开始进行移植。我相信,如果你能认真的跟着文章实际操作一把,以后不管遇到什么类型的芯片、什么类型的开发板,同样都能完成从零移植u-boot的工作。1.2 实现的功能移植的u-boot 2020.07目前实现的功能如下:如标题所述,全部原创 2020-07-02 18:29:58 · 1281 阅读 · 1 评论