全志V3S嵌入式驱动开发(五种镜像烧入的方法)

news2025/2/26 19:50:08

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

        关于v3s的镜像烧入,大约有五种方法。前面陆陆续续已经介绍了三种方法,实际工作中具体使用哪一种,大家可以根据自己的情况灵活进行决定。这几种方法,有的使用比较简单,但是不太好调试;有的稍微复杂一点,但是方便自己一步一步调试,所以使用的时候,可以多试一试,不要遇到一点问题就打退堂鼓。

1、基于sd卡的镜像烧入方法

        这种方法,就是把uboot、dtb、kernel和rootfs都烧入在一张sd卡上面。它最大的好处就是只需要准备一张高质量的sd卡,将image通过win32diskimager烧入即可。详细的内容,可以参考之前这篇文章,

https://blog.csdn.net/feixiaoxing/article/details/130897035?spm=1001.2014.3001.5501

2、基于PhoenixSuit的镜像烧入方法

        基于PhoenixSuit,本质上是通过usb otg数据输入,烧入到nand flash上面。它的好处就是,只需要一根usb otg连接线,就可以实现image的烧入。具体内容,我们之前已经讨论过,链接地址如下,

https://blog.csdn.net/feixiaoxing/article/details/131337408?spm=1001.2014.3001.5501

3、基于sunxi-fel工具的镜像烧入方法

        前面我们做实验的时候,发现如果是spi nand flash,不能把image下载到nor flash上面。因此,为了解决这个问题,我们可以借助官方提供的sunxi-fel工具,来实现nor flash的烧入。同样,这个方法前面也介绍过,链接如下,

https://blog.csdn.net/feixiaoxing/article/details/131347010?spm=1001.2014.3001.5501

4、基于uboot和y modem的镜像烧入方法

        在实际测试sunxi-fel的时候,我们发现,如果只是烧入简单的uboot bin文件,成功的概率还是很高的,但是如果烧入的文件很大,比如说整个文件有16M、32M,那么失败的风险很高。鉴于此,我们提出了使用uboot+y modem来实现镜像文件烧入的方法。

        首先,还是需要sunxi-fel通过uboot子命令,将uboot加载到sram空间执行,

sudo ../ sunxi-tools-3s-spi/sunxi-fel uboot u-boot-sunxi-with-spl.bin

        这个时候uboot已经起来了,下面就开始准备用uboot里面的loady命令实现文件传递。要实现这个目的,可以使用windows下面的secure crt软件,或者linux下面的minicom软件。因为安装了ubuntu虚拟机,所以我们选择了后者。

        将usb串口接入到ubuntu虚拟机,

         安装好minicom,

shell> sudo apt-get install minicom

        确认设备节点已经被ubuntu找到,

shell> ls -l /dev/ttyUSB*
crw------- 1 root root 188, 0 6月  24 11:45 /dev/ttyUSB0

        配置minicom,输入sudo minicom -s,选择“Serial Port Setup”,修改好端口名称,

        保存为dfl,接着Exit from Minicom,

         重新输入sudo minicom,这个时候,就可以进行串口通信了,

         如果需要退出的话,输入ctrl + a、z,接着输入x即可。

        有了minicom,uboot也起来了,接下来就可以用loady命令开始准备数据传递了,假设我们需要把dtb文件拷贝到0x41800000,那么首先输入loady 0x41800000,接着输入ctrl+a、s,选择y modem,

        确认之后,通过上下移动选择文件,空格单击确认文件,单击回车后就可以开始传输了。如果是选择目录,那么空格双击就好了,

         传输结束之后,就可以看到相应的提示信息,

         当然这个操作,只是把数据从pc经过串口传递到了v3s的ddr空间。如果需要把镜像copy到flash上面,还需要sf命令的帮忙,这样才能真正烧入到nor flash或者nandflash当中。

sf probe 0
sf read
sf write
sf erase
sf update

 5、基于sd卡和linux系统的镜像输入

        这种方法基于linux系统,本身就是等sd卡完全启动之后,把nor flash或者nand flash当成系统的一个外设进行处理。所以,它有两个重要的依赖条件,一个是nor flash驱动被加载;另外一个就是nand flash驱动被加载,至于实际使用哪一种,根据具体情况来定。

        好在前面我们已经处理好了nandflash驱动,链接地址在这,

https://blog.csdn.net/feixiaoxing/article/details/131239198?spm=1001.2014.3001.5501

        也处理好了norflash驱动,链接地址在这,

https://blog.csdn.net/feixiaoxing/article/details/131353575?spm=1001.2014.3001.5501

         有了这两个驱动,我们在设备启动后,只要确认mtd节点存在,就可以通过dd命令就可以实现镜像文件的写入了,类似于这样读取文件,

dd if=/dev/mtd0 of=4k.bin bs=4096 count=1

        或者写入文件,

dd if=flashimg.bin /dev/mtd0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/679333.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 监控与管理的主要组件

SpringBoot 监控与管理的主要组件 SpringBoot作为一款开箱即用的Java Web开发框架,集成了很多方便开发者使用的组件。其中一个非常重要的组件就是监控与管理组件。在现代的分布式应用中,监控与管理已经成为了必不可少的一部分。SpringBoot提供了一些非常…

指针与数组--动态数组(1)[1、C程序的内存映像 2、动态内存分配]

目录 一、C程序的内存映像 二、动态内存分配 1、malloc()函数 2、calloc()函数 3、free()函数 4、realloc()函数 一、C程序的内存映像 一个编译后的C程序 获得并使用4块在逻辑上不…

vue+leaflet 使用js自定义封装动画marker样式点

效果图 1. 引入leaflet import L from leaflet2. 使用原生js实现 import L from leaflet; import ../assets/css/blinkmarker.css; L.blinkMarker (point, property) > {// 使用js标签,便于操作,这个temDivEle的作用是将divEle通过innerHTML的方式获取为字符串var temp…

Nacos 打通 CMDB 实现就近访问

博主介绍:✌全网粉丝4W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程,博主也曾写过优秀论文,查重率极低,在这方面…

小程序 体验版 快速配置https服务接口 - 项目是nodeJS配置本地https服务,不用下载源码不用付费,直接使用Git的openssh功能(亲测有效)

背景 学习网易云音乐小程序开发,用了老师的node JS做后端服务器,上线小程序体验版必须要https接口。 接下来就是配置NodeJs服务https踩的坑跟发现的惊喜。 配置https 下载与配置 密钥生成 1 运行命令 : openssl genrsa -out privatekey.p…

BST有缺陷--红黑树(RBT)应运而生

1.首先介绍一下什么是BST(二叉查找树) 若其左子树非空,则左子树上所有节点的值都小于根节点的值若其右子树非空,则右子树上所有节点的值都大于根节点的值其左右子树都是一棵二叉查找树二叉排序树通过中序遍历可以得到递增序列 如下…

技能树-网络爬虫-selenium

文章目录 前言一、selenium二、selenium 测试用例总结 前言 大家好,我是空空star,本篇给大家分享一下《技能树-网络爬虫-selenium》。 一、selenium Selenium是web自动化测试工具集,爬虫可以利用其实现对页面动态资源的采集,对于…

一位老程序员的忠告:别想着靠技术生存一辈子

注:本文系转载。 笔者目前是自己单干,但此前有多年在从事软件开发工作,回头想想自己,特别想对那些初学JAVA/DOT、NET技术的朋友说点心里话,希望我们的体会多少能给你们一些启发。 一、 在一个地方工作8小时就是“穷”…

Python多线程与多进程教程:全面解析、代码案例与优化技巧

文章目录 引言多线程多线程概述案例1:使用多线程实现并发下载文件案例2:使用多线程处理CPU密集型任务 使用threading模块案例1:自定义线程类并启动线程案例2:使用锁保护共享资源 线程同步与互斥案例:使用锁实现线程安全…

css用法总结

1. 块级元素合并时边框重叠问题的解决方案 设置边框2px 红色 如果不做处理,仅仅添加边框则会是这个样子 设置处理后的样式 代码展示 2. 拥有边框的div , hover时的展示效果 代码展示 3. img 和 文字环绕展示 代码展示 设置左浮动即可 4. text-align: center; 可…

Linux——Samba文件共享服务

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。 个人主页:小李会科技的…

Go语言基础-基础语法

前言: \textcolor{Green}{前言:} 前言: 💞这个专栏就专门来记录一下寒假参加的第五期字节跳动训练营 💞从这个专栏里面可以迅速获得Go的知识 本文主要是根据今天所学(链接放在了最后)总结记录的…

please specify ‘programme‘ in launch.json

故障现象: 在windows下点击F5,以运行vscode代码,在屏幕右下角出现这个错误提醒; 故障原因: 在配置文件(settings.json或者launch.json)中,缺少“program”这个参数配置&#xff1b…

SpringBoot 如何使用 Actuator 进行应用程序监控

SpringBoot 如何使用 Actuator 进行应用程序监控 在现代的应用程序开发中,应用程序监控是非常重要的,因为它可以帮助我们快速发现和解决问题。Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具,它可以帮助我们监控和管理…

0003Java程序设计-SSM+JSP现代家庭教育网站

摘 要 本毕业设计的内容是设计并且实现一个基于java技术的现代家庭教育网站。它是在Windows下,以MYSQL为数据库开发平台,java技术和Tomcat网络信息服务作为应用服务器。现代家庭教育网站的功能已基本实现,主要包括主页、个人中心、会员管理、…

Maven如何创建Maven web项目

1、创建一个新的模块: 1.1 使用骨架点一下,这里 1.2 找到maven-archetype-webapp项目,选中点击,一路next就行。 1.3 删除不必要的maven配置:(这里我不需要,针对自己情况而定) 可以从name这里开…

figma设计软件专业版教育优惠学生使用edu邮箱免费教程

产品介绍 今天一个买家发了一个链接问是否可以用,本站也是第一次见到,就测试了下可以使用教育优惠后准备分享给大家。本站的大多数教育优惠线报其实都是很多网友买家提供的。 Figma是一款用于数字项目的基于云的设计和原型的设计工具软件。 这样做的目…

Python应用实例(一)外星人入侵(二)

1.添加飞船图像 下面将飞船加入游戏中。为了在屏幕上绘制玩家的飞船,我们将加载一幅图像,再使用Pygame方法blit()绘制它。 为游戏选择素材时,务必要注意许可。最安全、最不费钱的方式是使用Pixabay等网站提供的免费图形,无须授权…

强者游戏-敢来挑战否-Amazon DeepRacer League

Amazon DeepRacer中国峰会总决赛 Amazon DeepRacer 自动驾驶赛车名校邀请赛会在6月27日-28日举办的Amazon DeepRacer中国峰会总决赛时同步启动。勇哥的目标是拿个比较好的名词。大家如果有参加这次活动的可以过来一起搞哦。下面我来具体介绍一下这次峰会,以及比赛的…

PyTorch C++ 前端是 PyTorch 机器学习框架的纯 C++ 接口

使用 PyTorch C 前端 PyTorch C 前端是 PyTorch 机器学习框架的纯 C 接口。 虽然 PyTorch 的主要接口自然是 Python,但此 Python API 位于强大的 C 代码库之上,提供基本的数据结构和功能,例如张量和自动微分。 C 前端公开了纯 C 11 API&…