全志V3S嵌入式驱动开发(基于usb otg的spi-nand镜像烧入)

news2024/12/25 9:44:36

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

        前面我们说过spi nand驱动,但是这个驱动是建立在linux系统从sd卡加载的情况下进行的。开发测试的情况下,这么做或许是可以的,但是如果是最终量产的话,我们应该怎么做呢,肯定不可能要求客户再买一个sd卡进行操作处理了。所以这个时候,v3s的手册上提醒我们,完全可以通过usb otg的方法进行镜像烧入。

1、再次学习v3s的系统启动方式

         上面这张图,我们已经看过几次了。但凡遇到boot方面的问题,这张图总要被拿出来说一说。从图中很明显的看出,v3s会在两种情况下进入usb boot状态。第一种,就是查看到v3s的一根pin状态为0的时候;第二种就是sdc0、spi0 nor、spi0 nand都失败的情况下,也会进入到usb boot状态。所以,对于我们来说,最好的方法就是拉低v3s的一根pin,直接进入usb boot operation。

         从电路图上可以看出,这里有一个s6开关,如果需要v3进入usb状态,那么这一个s6肯定是需要按下的。所谓的SPI_MISO,其实就是master in slave out,这个master就是v3s,而slave就是spi nandflash。因此一旦s6被按下之后,信号接地,默认是0,那么v3s就没有办法从spi nandflash读取到数据,因为读不到数据,系统启动也就无从谈起了。

        对于v3s来说,进入usb状态之后,一方面它会从usb otg获取数据,另外一方面可以把数据通过spi烧入到nand flash上面。大家可以把这个过程看成是v3s有一段默认的固化逻辑,这部分是芯片自带的流程,不需要外界的参与。

 

2、实操让v3s进入usb boot状态

        我们的v3s是利用usb进行供电的,不管这种供电是来自于type c,或者usb otg,想让系统上电后马上就进入到usb boot状态,仅仅靠手快速按下s6,是很难实现的。所以,这个时候一般需要搭配上复位键一起操作。

         为了保证v3s进入usb boot状态,最好按照下面这个操作步骤进行:

        1)拔掉sd卡;

        2)插入usb otg上电,系统启动,此时spi nand是否已经有镜像文件都不重要;

        3)按住复位键s5和spi键s6;

        4)先松开s5,让v3s复位;

        5)5秒钟之后松开s6,让v3s进入usb state。

        实际操作的时候,s5和s6同时按住不太容易,可以手搭在rj45的连接器上面,这样会比较方便一点。如果一切比较顺利的话,打开设备管理器,可以看到生成了一个新的设备节点,如下图黄色部分,只是这个设备还没有关联的windows驱动,

3、安装PhoenixSuit软件

        为了给usb安装驱动,我们需要安装一下PhoenixSuit软件。这个软件不仅可以帮助安装usb驱动,最终下载也是利用的这个软件。PhoenixSuit的下载地址在这,

https://www.downkuai.com/soft/71844.html

         下载后,正常安装就可以了,中间如果提示驱动安装,选择默认即可。安装好了PhoenixSuit之后,就可以用它目录下的驱动文件进行usb驱动安装了。

        在设备管理器中选择好刚才未识别的设备节点,直接从指定目录安装驱动即可,这个目录就是PhoenixSuit软件在windows系统安装的一个位置,

         安装后,如果没有大问题的话,就可以看到,新的usb节点已经被识别了,黄色的点也不见了,

         上面VID_1f3a_PID_efe8这个设备,就是安装好驱动的usb节点。网上有很多提示,比如说用zadig安装驱动,这个方法其实不对。至少说,如果我们希望用PhoenixSuit进行镜像文件下载的话,最好还是选用PhoenixSuit提供的usb驱动,这样可以避免很多麻烦、少走很多的弯路。

        对这一过程不太熟悉的朋友可以反复练习一下,比如删除驱动,重新安装驱动,这样可以加深一下印象,

 

4、安装下载镜像文件

        因为我们自己还没有准备好对应的、基于nandflash的镜像文件,所以这个时候可以直接参考之前淘宝商家提供的镜像,也就是cherrypi-v3s-linux-2020-07-14.img。使用PhoenixSuit下载image也很简单,首先就是打开PhoenixSuit,选择一键刷机,设置好img文件的位置,注意最好同时选择格式化,单击立即升级,中间弹出的各种告警信息都可以忽略,

         同时按下s5和s6,先松开s5,让v3s进入到复位模式。几秒之后,松开s6,这样就可以进入usb状态了。因为我们之前已经在PhoenixSuit点击了升级命令,所以这个时候软件自动就开始准备image下载了,

         整个下载的过程还是很顺利的,一般的话几十秒钟就可以快速下载完。下载完之后,就可以拔掉sd卡,启动v3s系统,确认v3s是不是真的可以从spi nandflash启动。

 

5、总结

        整个spi nandflash的下载有两个难点,第一个是如果正确地让v3s进入到usb状态;另外一个就是如何给usb节点安装正确的驱动。两者缺一不可,很容易犯错误。此外,由于整个开发板按键比较小,操作上面也着实不太方便,这个时候对练习的同学来说也是一种考验。

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

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

相关文章

PWM详解(嵌入式学习)

这里写目录标题 前言定义参数工作原理应用练习 前言 在STM32微控制器中,PWM代表脉冲宽度调制(Pulse Width Modulation)。PWM是一种用于控制电子设备的技术,通过调整信号的脉冲宽度和周期,可以模拟出不同的电压或功率级…

【python】—— 基础语法(一)

序言: 在之前,我们已经对【python】的开发环境进行了相应的安装,紧接着本期我就讲给大家介绍它的相关语法。对于学过【C/C】或者其他语言的小伙伴来说,语法内容学习起来就会掌握的很快了。 目录 前言 (一&#xff0…

【架构师】零基础到精通——网关策略

博客昵称:架构师Cool 最喜欢的座右铭:一以贯之的努力,不得懈怠的人生。 作者简介:一名退役Coder,软件设计师/鸿蒙高级工程师认证,在备战高级架构师/系统分析师,欢迎关注小弟! 博主小…

vue服务端渲染SSR

一:ssr的理解 1、服务端渲染 Server Side Render SSR解决方案,后端渲染出完整的首屏的dom结构返回,前端拿到的内容包括首屏及完整spa结构,应用激活后依然按照spa方式运行,这种页面渲染方式被称为服务端渲染 (server si…

ISO C++ 26 并发和并行性重大完善

ISO C 委员会举行会议正式通过了 C 26 的时间表。ISO C 标准委员会主席兼微软语言架构师 Herb Sutte,并发和并行小组仍在按计划推进 C26 的 std::execution 和 SIMD 并行 一、 C23 与C 26 开发时间表: 二、C26标准属性三大规则。非正式总结是: [已经在c …

【Python 基础篇】Python数据序列推导式

文章目录 前言一、列表推导式二、字典推导式三、集合推导式总结 前言 在Python中,推导式(Comprehension)是一种简洁而强大的语法,用于快速创建列表、字典和集合。推导式使得在一个简单的语句中就能生成一个新的数据结构&#xff…

忘记Gmail谷歌账号密码或者密码错误怎么办?用这种方法轻松搞定

有些朋友以前注册过谷歌邮箱,但很久很久没有再去使用。现在注册ChatGPT需要谷歌邮箱,于是打算把尘封已久的谷歌邮箱找出来,可是这时候你突然发现,谷歌邮箱的密码忘了。 今天重点来说说如何找回谷歌账号的密码,希望能够…

英语口语进阶:让你的疲劳与口渴表达更地道

前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家 😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人,一起加油进…

Web网页制作期末复习(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影

目录 CSS盒子模型 概念 弹性盒模型(flex box) 内容 父元素上的属性 display属性 flex-direction属性 justify-content属性 align-items属性 子元素上的属性 flex 文档流(标准流) 浮动 定义 浮动的原理 清除浮动 …

用OpenCV进行OCR字符分割

1. 引言 本文重点介绍如何利用传统的图像处理的方法来进行OCR字符切分,进而可以用分割后的单个字符做相应的后续任务,虽然现在计算机视觉依然是卷积神经网络的天下,但是对于一些相对简单的落地场景传统方案还是很有效的。 闲话少说&#xff…

底盘线控悬架智能化趋势

摘要: 汽车的底盘主要由行驶系、传动系、转向系和制动系四部分组成,其中行驶系又由汽车的车架、车桥、车轮和悬架等系统组成。底盘的悬架系统不仅是汽车重要的组成部分,而且还关乎到一辆汽车在行驶过程中的质感,影响车辆的操控性…

CSDN周赛59期简要题解

本期题目相对比较友好,而且在比赛报名界面还提示了非编程题考察的章节——诚不欺我: 本期非编程题需要选手阅读的章节是第2章“逆向思考——从递推到递归”—2.3节“堆栈和队列:遍历的数据结构” 选择和判断都考到了栈的数据结构&#xff0…

【MySQL进阶】:子查询与HAVING/SELECT的完美结合

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL子查询在HAVING/SELECT字句中使用、及相关子查询和WITH/EXISTS字句的讲解✨ 目录 前言一、在HAVING/SELECT字句中使用子查询二、相关子查询三、WITH/EXISTS、NOT EXISTS字句四、总结 一、在HAVING/SELECT字句中…

【Python 基础篇】Python 字典及字典常用函数

文章目录 导言一、字典的创建和访问二、字典的增删改查1、增加元素2、删除元素3、修改元素4、查找元素 三、字典常用函数及操作1、len()2、keys()3、values()4、items()5、字典的遍历 总结 导言 在Python中,字典(Dictionary)是一种无序的数据…

使用它或失去它!谷歌即将清理不活跃账号

如果你很长时间没有登录你的谷歌账号,最好尽快登录,否则你很可能会失去账号。 2023年5月16号,谷歌宣布,将开始删除至少两年不活跃的账号。 如果谷歌帐户至少两年未被使用或登录,可能会删除该帐户及其内容,包…

04. 青龙面板通知配置 邮箱 pushPlus 企业微信机器人(保姆级图文)

目录 1. qq邮箱通知2. pushPlus通知3. 企业微信机器人总结 欢迎关注 『青龙面板』 专栏,持续更新中 欢迎关注 『青龙面板』 专栏,持续更新中 1. qq邮箱通知 emailUser:填写你的邮箱 emailPass:填写邮箱密钥授权码 邮箱密钥获取教…

【从零开始学习JAVA | 第六篇】面向对象综合训练

目录 前言: 1.文字版格斗游戏: 2.对象数组1 前言: 前面我们已经讲解了JAVA面向程序对象思想的关键要素:封装。我们将利用本篇进行几个小型的练习,帮助我们更好的理解面向对象编程这种思想。 1.文字版格斗游戏&#x…

C++哈希表

目录 介绍哈希概念哈希冲突哈希函数解决哈希冲突 闭散列介绍线性探测二次探测负载因子 实现哈希表结构哈希函数元素查找插入元素删除元素 开散列介绍实现哈希表结构元素查找插入元素删除元素析构函数 介绍 哈希概念 了解过搜索二叉树与红黑树后,它们的结构特点主要…

8.批量消息发送与批量消息消费

highlight: arduino-light 4.4 批量消息 4.4.1 发送限制 生产者进行消息发送时可以一次发送多条消息,批量发送消息能显著提高传递小消息的性能。 不过需要注意以下几点: 批量发送的消息必须具有相同的Topic批量发送的消息必须具有相同的刷盘策略批量发送…

统计数组中非零元素的个数统计数组中每列中非零元素的个数统计数组中每行中非零元素的个数numpy.count_nonzero()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 统计数组中非零元素的个数 统计数组中每列中非零元素的个数 统计数组中每行中非零元素的个数 numpy.count_nonzero() 选择题 以下说法错误的是? import numpy as np anp.array([[0,1,2,3],[3,…