【ext datefield 源码】【qeventloop 源码】【mempcpy源码】ramdisk 源码解析

时间:2024-12-22 22:49:38 来源:并发编程原理源码 编辑:阅读源码笔记

1.怎么安装repo?
2.总结uboot的码解重要概念,不知道的码解看过来

ramdisk 源码解析

怎么安装repo?

         安装repo(用来更新Android源码)

       创建~/bin目录,用来存放repo程序,码解如下:

       。码解$ cd ~

       。码解$ mkdir bin

       并加到环境变量PATH中,码解ext datefield 源码在第2步中已经加入

       下载repo脚本并使其可执行:

       。码解$ curl /bbs/pub/cupcake。码解tar。码解gz。码解而且解压出来的码解 cupcake下也有。repo文件夹,码解qeventloop 源码可以通过repo sync来更新cupcake代码:

       。码解tar -xvf

       cupcake。码解tar。码解gz

       repo sync(更新很慢,用了3个小时)

       5、编译Android源码,并得到~/project/Android/cupcake/out 目录

       进入Android源码目录:

       make

       这一过程很久(2个多小时)

       6、在模拟器上运行编译好Android

       Android SDK的emulator程序在Android-sdk-linux_x-1。

         0_r2/tools/下,emulator是需要加载一些image的,默认加载Android-sdk-linux_x-1。0_r2/tools/lib/images下的mempcpy源码kernel-qemu(内核) ramdisk。img

       system。

         img

       userdata。img

       编译好Android之后,emulator在~/project/Android/cupcake/out/host/linux-x/bin下, ramdisk。img

       system。img

       userdata。

         img则在~/project/Android/cupcake/out/target/product/generic下

       cd ~/project/Android/cupcake/out/host/linux-x/bin

       增加环境变量

       。

         vim ~/。bashrc

       在。bashrc中新增环境变量,feelvos源码如下

       。#java 程序开发/运行的一些环境变量

       。export Android_PRODUCT_OUT=~/project/Android/cupcake2/out/target/product/generic

       。

         Android_PRODUCT_OUT_BIN=~/project/Android/cupcake2/out/host/linux-x/bin

       。export PATH=${ PATH}:${ Android_PRODUCT_OUT_BIN};

       最后,同步这些变化:

       。

         source ~/。bashrc

       。emulator -image system。img -data userdata。img -ramdisk ramdisk。softroce源码img

       最后进入Android桌面,就说明成功了。

       out/host/linux-x/bin下生成许多有用工具(包括Android SDK/tools的所有工具),因此,可以把eclipse中Android SDK的路径指定到out/host/linux-x/bin进行开发。

         

总结uboot的重要概念,不知道的看过来

       本篇内容不讲解uboot源码,只总结面试中高频问到的重要知识点。内容适用于嵌入式新人了解uboot,对老手有复习和查漏补缺的作用。

       1、PC机启动:上电后,BIOS程序初始化DDR内存和硬盘,从硬盘读取OS镜像到DDR,跳转执行OS。

       2、嵌入式Linux系统启动:上电后执行uboot,初始化DDR、Flash,将OS从Flash读到DDR,启动OS。

       3、uboot定义与作用:uboot属于bootloader,作为单线程裸机程序,主要作用是初始化硬件、内存、flash等,引导内核启动。

       4、uboot启动阶段(不同平台差异):MTK平台:boot rom -> preloader -> lk -> kernel;RK平台:bootrom -> spl(miniloader) -> uboot -> trust -> kernel;NXP平台:bootrom -> bl2 -> ATF -> uboot -> kernel。

       5、uboot支持多种启动方式:SPI Flash/eMMC/Nvme/SD/Hard Disk/U-Disk/net。启动方式不同,固件存放位置也不同。

       6、掌握uboot的关键点:命令和环境变量。uboot启动后大部分工作在shell中完成,命令用于操作,环境变量如bootcmd和bootargs,用于设置启动参数。

       7、bootargs参数详解:root用于指定rootfs位置,console用于设置控制台,mem用于指定内核使用内存大小,ramdisk_size用于设置ramdisk大小,initrd用于指定initrd参数,init用于指定启动脚本,mtdparts用于设置分区。

       8、常用bootargs组合:文件系统为ramdisk、jffs2类型、nfs等不同情况下的bootargs设置示例。

       总结,了解uboot是嵌入式开发的基础,掌握其启动过程和关键参数,对提高开发效率和解决问题有重要作用。

copyright © 2016 powered by 皮皮网   sitemap