全志V3S嵌入式驱动开发(full image制作和资料汇总)

news/2024/10/19 0:21:35/

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        所谓的full image制作,就是制作一个image,上面包含了所有的嵌入式软件、库和配置文件。之前虽然我们也构建了spi-nor、spi-nand、sd的image,但是上面缺少了一个关键的部分,也就是app代码的构建。这部分的内容今天也有必要加入进去。

        另外,顺便借助这篇文章,我们可以顺便回忆一下之前uboot、kernel和rootfs是怎么编译的,这也非常重要。此外这一次构建的full image是spi-nor启动的,大家可以稍微注意下。

1、编译uboot代码

# build uboot
cd ../u-boot-3s-spi-experimental/
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
cd -

2、编译内核

#build kernel
cd ../linux-zero-5.2.y
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
cd -

3、编译rootfs

#build rootfs
cd ../buildroot-2017.08
sudo make 
cd -

4、编译app代码

#build app, for different use
cd ../app
make
cd -

5、将app执行文件拷贝到rootfs,生成jffs2.img文件

# copy file to rootfs
sudo cp ../app/demo ../buildroot-2017.08/output/target/root
echo "copy demo to rootfs"
cd ../buildroot-2017.08/output
sudo mkfs.jffs2 -s 0x100 -e 0x10000 -p 0x19F0000 -d target/ -o jffs2.img
cd -

6、将所有的文件集中到一个目录下

# copy all image and dtb here
cp ../u-boot-3s-spi-experimental/u-boot-sunxi-with-spl.bin .
cp ../linux-zero-5.2.y/arch/arm/boot/zImage .
cp ../linux-zero-5.2.y/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-with-480x272-lcd.dtb .
cp ../buildroot-2017.08/output/jffs2.img .

7、创建一个镜像文件,并且将之前copy过来的文件复制到镜像文件中去

# generate final image
dd if=/dev/zero of=flashimg.bin bs=1M count=32
dd if=u-boot-sunxi-with-spl.bin of=flashimg.bin bs=1K conv=notrunc
dd if=sun8i-v3s-licheepi-zero-with-480x272-lcd.dtb of=flashimg.bin bs=1K seek=1024  conv=notrunc
dd if=zImage of=flashimg.bin bs=1K seek=1088  conv=notrunc
dd if=jffs2.img of=flashimg.bin  bs=1K seek=6208  conv=notrunc

        除了生成full image之外,我们还可以将之前开发过程中积累的文档资料整理归类一下,比方说像这样,

         其中共包含了7个目录和2个文件。datasheet中包含了电路的主要元器件的手册文件,比如soc、nandflash、wifi模块等等。img包含了可以直接烧入的镜像文件。schematic则包含了主要的原理图文件。script则保存了full image的生成脚本。src是源代码区域,里面包含了uboot、kernel、buildroot、tinyalsa等开源代码。test是上位机代码和程序的位置。tool保存了使用中遇到的各种工具,比如virtualbox、ubuntu、notepad++、sunxi-fel、xfel、zadig、PhonixSuit软件等等。

        保存好了这些资料,后续再次学习和使用的时候就很方便了。


http://www.ppmy.cn/news/701320.html

相关文章

第二章、基础网络概念

你的服务器是放在网络网络上面来提供服务的,所以,如果没有网络或者是网络不通,那么你的服务器当然是英雄无用武之地啦! 此外,服务器上面的网络服务都是用来达成某项因特网的通讯协议,以提供相对应的服务而已…

鸟哥的Linux私房菜(服务器)- 第二章、基础网络概念

第二章、基础网络概念 最近更新日期:2011/07/15 你的服务器是放在网络网络上面来提供服务的,所以,如果没有网络或者是网络不通,那么你的服务器当然是英雄无用武之地啦! 此外,服务器上面的网络服务都是用来达…

信息技术基础

信息系统基础知识 1. 信息 1.信息的基本概念 (1)控制论的创始人维纳认为:信息就是信息,它既不是物质,也不是能量。 (2)信息论的奠基者香农认为:信息是能够用来消除不确定性的东西。 (3)信息的概念存在两个基本的层次,即本体论层次和认识论层次。前者是纯客观的…

图解23种设计模式

图解23种设计模式 创建型模式:1、单例模式2、工厂模式(简单工厂、工厂方法)3、抽象工厂模式4、建造者模式5、原型模式 结构型模式1、适配器模式2、桥接模式3、代理模式3.1 静态代理模式3.2 动态代理(角色不变) 4、装饰…

word 常用设置

目录 目录 关闭 Word 句首字母自动大写功能 1 Word 生成目录 1 Word 快速调整标题级别 1 Word 关闭句首字母自动大写功能 参考:https://zhuanlan.zhihu.com/p/126626796 Word 生成目录 参考:https://zhuanlan.zhihu.com/p/630261219 Word 快速调整标题级…

案例赏析 | 新疆喀什:“大型充电宝”扎根戈壁,让新能源供电更稳定

在喀什,你可以置身秘境,一睹帕米尔高原、乔戈里峰、“冰山之父”慕士塔格峰的壮丽;可以走进喀什古城,在街头巷尾、一砖一瓦间感受丝路风情;可以探访塔克拉玛干沙漠,开始一场关于冒险者的游戏;也…

子域名映射接口

当你有一个java项目部署在服务器时,需要使用不同前缀的子域名映射到项目的不同接口就需要nginx来配置。 比如: resume.holdenxiao.cn映射到本地的127.0.0.1:55554/resume data.holdenxiao.cn映射到本地的127.0.0.1:55554/data_center 可以这样配置ngi…

小白放心看|简单聊聊Chat-GPT和大模型

今年, Chat-GPT问世之后,国内外诸多知名公司,如百度、阿里和谷歌等纷纷加入到大模型研发优化的行列中来。短时间内,GPT不仅成为科技圈新宠,还频频“破圈”在人们的日常学习办公生活中得到广泛应用。无论是业内人员还是…