Linux arm裸机和uboot
文章平均质量分 60
Linux arm裸机和uboot
rjszcb
不断学习变成牛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
记录hisi35xx,uboot源码分析,适配
本文分析了HiSi3530平台的U-Boot启动流程及源码结构。启动流程从start.S开始,首先执行CPU模式设置、缓存初始化等操作,然后检测"ziju"标志决定是否执行DDR初始化。源码分为核心部分和板级适配部分,重点关注DDR和eMMC驱动。链接脚本u-boot.lds定义了代码段布局,确保start.o等关键模块位于起始位置。start.S包含异常向量表、内存初始化代码,通过init_registers函数完成PLL/DDR控制器初始化,为后续重定位到DDR和运行C语言代码做准备原创 2022-11-20 14:30:26 · 174 阅读 · 0 评论 -
hisi3520 uboot emmc源代码,emmc初始化。
本文介绍了Hi3520 U-Boot中eMMC初始化的关键代码实现。摘要如下: 代码位于Hi3521DV100 SDK的u-boot-2010.06中,主要负责eMMC启动初始化 通过标准MMC命令进行通信,包括CMD0(复位)、CMD1(初始化)、CMD2(获取CID)等 实现硬件寄存器操作函数:himci_readl()读取寄存器、himci_writel()写入寄存器 主要功能函数包括: emmc_sys_init():系统级初始化,包括时钟和复位控制 emmc_send_cmd():发送MMC命令并原创 2021-11-04 01:14:26 · 486 阅读 · 0 评论 -
Linux,uboot,kernel启动流程,S5PV210芯片的启动流程,DRAM控制器初始化流程
S5PV210内部有 iROM 和 iRAM,因此启动时分两个阶段:内部启动阶段和外部启动阶段。对于内部启动阶段各种S5PV210的开发板都是相同的,对于外部启动阶段,不同开发板会有不同。因为 iROM 可以使 SOC 从各种外设启动,因此可以省下一块 boot rom(专门用来启动的rom,一般是norflash)SoC 中第一启动介质故障而导致不能启动时,可以从备用启动介质启动。如果成功,BL1开始。拷贝BL1后,将复制的BL1的iROM数据求和,并将其与BL1头数据中的校验和数据进行比较。原创 2024-09-22 16:08:07 · 1802 阅读 · 0 评论 -
s5pv210(SD卡,fastboot、dd,nand write,mmc write,tftp,dnw)方式刷机,以及led裸机例子(二)
很多人,说韦东山比他讲的好,确实。这是我现在猜想的,芯片商提供的工具,为啥没有手动分区,怎么烧录的,今天明白了,他们其实都会调用写好的脚步文件,根据配置,进行文区的,linux的烧录时,编译后会生成一个文件,或直接读取dts配置文件,有分区大小,镜像名字,offset,ro可读可写配置等等。或者,uboot有mtd分区功能,估计是这么用的,提供分区信息,uboot,kernel,fs分区,起始地址,分区大小,uboot从sd卡启动,被读到ddr时,会根据这些信息,来多emmc,nand分区,固化程序。原创 2024-09-27 11:25:36 · 1377 阅读 · 0 评论 -
一文介绍完uboot,以tag结构体的方式给内核传参,cmdline,bootargs,以及uboot如何启动内核(三)
其中bd->bi_boot_params就是所有tag结构体所在的首地址,这个地址是保存在全局变量gd->bd中的,在uboot启动的前期会指定内存地址用于存放tag结构体,然后在启动内核的时候传给内核,内核拿到地址就会从该地址去遍历tag结构体,内核会判断tag的类型,如果是ATAG_CORE类型的tag则是起始的tag,如果是ATAG_NONE则是最后一个tag结构体,不用再往后遍历。uboot(universal boot)是通用的启动代码,支持多种架构的CPU,并且是开源的。原创 2024-09-25 15:09:04 · 937 阅读 · 0 评论 -
虚拟机安装TFTP,uboot下tftp下载镜像到SDRAM,烧写镜像到emmc,norflash或nand,设置nfs挂载或自启动根文件
/添加的内容是:允许 ip地址范围在192.168.5.*的计算机以读写的权限来访问/home/eastmoon/ok6410/rootfs目录,/home/eastmoon/ok6410/rootfs也称为服务器输出共享目录。输出这样的信息才是ping通,ping不同检查开发板设置的ip地址有没有冲突被占用,一定要用桥接的方式和虚拟机和pc通信上网,可以在路由器和pc间接一个交换机,这样可以插三根网线,pc机,虚拟机,开发板在同一个网段。//看一看有没有ysh这个用户名,如果没有,就直接退出。原创 2021-01-06 20:49:43 · 1474 阅读 · 0 评论 -
Linux启动介质的设计,norflash、nandflash、emmc,iram,irom的区别,并作为启动介质的不同
1、NOR Flash的特点快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。NOR Flash需要很长的时间进行抹写,但是它提供完整的寻址与数据总线,并允许随机存取存储器上的任何区域,这使的它非常适合取代老式的ROM芯片。当时ROM芯片主要用来存储几乎不需更新的代码,NOR Flash可以忍受一万到一百万次抹写循环,它同时也是早期的可移除式快闪存储媒体的基础。也是一种存储介质;它的存原创 2021-06-21 13:37:03 · 3275 阅读 · 0 评论 -
hisi3520dv400,hitool工具或tftp工具镜像烧录方法,nandflash,norflash,emmc烧镜像命令和启动配置
我的板卡,是按hisi的推荐,设计的启动方式,接的是spi接口的norflash,作为启动介质(不需要初始化),nand(需要初始化)作为烧录镜像文件(uboot,kernel,fs),以及存储文件的硬盘。第一次烧录时,只能选串口烧录,烧录很慢,先只勾选uboot,按下面填好fastboot,kernel,fs,的地址,大小,点击烧录,重新断电上电,烧录成功。网络不行的话,选择串口也行,只是慢,十几分,选择串口的时候,我老是失败,后面一个一个烧,不是三个一起烧录,后面多试几次,就成功了。原创 2021-08-23 17:11:25 · 4522 阅读 · 0 评论 -
hisi3559av100 制作ext4的rootfs根文件系统镜像,以及烧录镜像工具介绍
一、emmc烧写uboot 和kernel,fs,设置如下:我的文件大小设置如下,分别三次勾选烧录uboot,kernel,fs,如果点击烧录,提示找不到,重新给开发板上电,...原创 2021-06-24 14:14:27 · 1379 阅读 · 1 评论 -
Uboot(手动,自动)对emmc或nand分区,格式挂载,烧录镜像的原理,以及SD卡固化镜像原理
所以是不是自动分区,就是写死在uboot里,mtdparts,uboot在ddr起来后,就可以根据这份表,自动进行分区,并读取外插入的sd卡,烧录uboot,kernel,fs到对应的分区。如下mount /dev/mmcblk0p1 /vm1这种,mmcblk0p1 是没有烧录镜像的,否则挂载写了文件,保存了会破坏掉分区uboot的,如果不是玩,是不允许这么玩的,kernel启动后,应该也是不允许这么挂载uboot分区,mmcblk0p1应该是uboot分区。关于原理前面文章有详细说明。原创 2024-09-18 20:35:30 · 6119 阅读 · 0 评论 -
yffs2,jffs2、ext4,ubi根文件镜像的格式的区别和优缺点
yffs2,jffs2、ext4,ubi根文件镜像的格式的区别和优缺点,不同的介质,如nand,norflash,inad,emmc,不同的格式正在酝酿。原创 2021-07-14 15:07:25 · 1207 阅读 · 1 评论 -
linux制作 ext4镜像image 脚本demo
将需要打包进镜像的文件丢进target的对应文件下,先生成ext4文件进行,然后挂载,cp拷贝到镜像包,最后卸载,这样就做出了一个镜像包,然后将文件替换,和md5 hash值,文件大小替换烧录文件里。记录烧录起始地址,结束地址,md5等等。readme 使用方法。原创 2023-11-21 17:05:05 · 395 阅读 · 0 评论 -
下载文件到嵌入式设备
2、从linux下载文件到嵌入式设备tftp -g -r 文件192.168.0.66 // 目标机从ubuntu linux下载文件如;tftp -g -r config_cascade_ch1.xml 192.168.0.66前提条件:开发板上已经通过别的方式把u-boot烧录好了原创 2021-05-13 10:09:09 · 545 阅读 · 0 评论 -
SD卡相关分区内容设置 x210 SD卡烧录方法
注意:有些生成的镜像文件很大,(如LCD显示图片等程序),大于16kb,这时候就必须要进行代码重定位,实现分步加载.BL1仅仅做一些初始化工作,BL2则是真正运行的主程序代码.分步加载的时候还要注意SD卡烧写的扇区个数要达到整个程序的文件大小.第一层启动从SD0(inand)启动, 当iNand启动做校验和时失败才会转为启动SD2。BL1.bin:是复制到SD卡中用SD卡烧录. BL1.bin是bootloader1.bin经过mkv210加工转化增加头文字校验信息得到的专门用于SD卡烧录的镜像文件.原创 2022-11-27 22:48:17 · 549 阅读 · 0 评论 -
linux 裸机.之ARM体系结构与汇编指令,37个寄存器,和 8种寻址方式(寄存器寻址,寄存器间接寻址)详解(一)
ldmia,stmfd,就是操作栈寄存器,stmfd sp ,{r2,r7,lr},就是保存现场的,对数据保存。cpu控制器,读取flash内的程序,系统,到ddr运行,通过cpu内置指令,读取一条条指令,到cpu的运算器,计算,将结果,重新放到ddr。通用寄存器一般是底层cpu访问使用的,特殊寄存器是c语言来使用的,操作gpio等等,如下面,访问通用寄存器和,特殊寄存器。特殊功能寄存器,只能固定使用,gpio,i2c等等,37个通用的,R1.R2.等等,是cpu来计算数据的。原创 2024-08-09 22:53:50 · 164 阅读 · 0 评论 -
linux 裸机.之时钟系统,看门狗,定时器,RTC(一)
linux 裸机.之时钟系统,看门狗,定时器(一)原创 2024-08-09 23:23:30 · 447 阅读 · 0 评论 -
linux 裸机.之汇编设置,栈,及可运行C语言,代码段(.text),数据段:(.data), bss段:(.bss)(一)
段就是程序的一部分,我们把整个程序的所有东西分成了一个一个的段,给每个段起个名字,然后在链接时就可以用这个名字来指示这些段。就是因为它把这类变量放在了.data段中,而.data段会在main执行之前被处理(初始化)。bss段:(.bss),又叫ZI(zero initial)段,就是零初始化段,对应C语言中初始化为0的全局变量。数据段:(.data),数据段就是C语言中有显式初始化为非0的全局变量。段名由程序员自己定义,段的属性和特征也由程序员自己定义。:代码段、数据段、bss段(ZI段)、自定义段。原创 2024-08-09 23:12:46 · 275 阅读 · 0 评论 -
linux 裸机.之S5PV210的启动过程,硬件接口(sd卡,nandflash)及启动方式详解(一)
linux 裸机.之S5PV210的启动过程详解(一)原创 2024-08-09 22:58:22 · 176 阅读 · 0 评论 -
linux 裸机.之S5PV210接口(GPIO,ADC,UART,I2C)分析,以及汇编,C语言,编程实战(一)
linux 裸机.之S5PV210接口(GPIO,ADC,UART,I2C)分析,以及汇编,C语言,编程实战(一)原创 2024-08-09 23:36:24 · 150 阅读 · 0 评论 -
linux 裸机.之S5PV210,LCD硬件分析,时序,和画图,划线,写字实战,汇编调用main函数的原理(一)
裸机播放一张图片,主要做了哪些操作。uboot 的BL11、设置链接脚本,地址,重地位地址3、设置cpu时钟4、uboot抠出来的初始化ddr,ddr才能工作5、调用三星的sd拷贝函数6、汇编设置cpu,C语言运行环境,然后调用ddr,sd拷贝函数uboot 的BL21、设置链接脚本,地址,重地位地址2、将图片通过工具转化出来数组数组,用于lcd显示3、初始化lcd控制器,c代码实现画图功能4、汇编调用main函数,调用lcd图片显示其他无关功能制作uboot.bin文件,将文件写原创 2024-08-09 23:30:24 · 264 阅读 · 0 评论 -
linux 裸机.之汇编初始化SDRAM,DDR2详解(一)
SDRAM初始化使用一个函数sdram_asm_init,函数在sdram_init.S文件中实现,是一个汇编函数。强调:汇编实现的函数在返回时需要明确使用返回指令(mov pc, lr)1.5.12.1、初始化代码框架介绍(函数调用和返回、步骤等).5.12.汇编初始化SDRAM详解1。1.5.12.2、27步初始化DDR2。原创 2024-08-09 23:07:47 · 215 阅读 · 0 评论 -
linux 裸机.之重定位引入和链接脚本(一)
bss_start是自定义段,下面这句代码是,比较两个地址,不相等,说明bss段,循环还没没完,给这个地址赋值0,就是清bss,就是初始化为0,C语言运行时,这段地址才是干净的,全局变量,局部变量才是干净的。清完了,就可以bl跳转到C语言去执行了。裸机代码时,写的重定位,就是从uboot扣出来的。2、uboot源码重定位。uboot的链接脚本。原创 2024-08-09 23:06:22 · 204 阅读 · 0 评论 -
Linux驱动.之中断系统,裸机下设置寄存器,绑定中断处理函数hander(一)
Linux驱动.之中断,外部中断,内部中断控制器,本篇讲1、arm裸机,轮询的方式,点亮led2、ARM裸机 通过按键,中断的方式,点了led灯,3、单片机,中断的方式4、CPU。裸机,的中断系统一、在开始前,先回顾下51单片机中断,单片机有5个中断,1个uart中断,2个定时器中断,2个外部中断,在发生中断时,单片机内部会自动跳转到hander处理函数,怎么实现的,不知道,是不是硬件自动跳转到中断处理函数的,还是软件查询后,去跳转,找到中断处理函数的。如下,定时器,点了led灯#incl原创 2024-08-09 12:45:37 · 1091 阅读 · 0 评论
分享