全志V3S嵌入式驱动开发(准备)

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

        要学好嵌入式,其实最好自己可以画板子、调试板子、写软件、调试软件这样来学习。简单的51单片机、stm32这样的mcu或许画起来不是很复杂,但是如果是运行linux系统的soc芯片,那么就没有这么简单了。虽然说linux的核心板无非就是soc、ddr、emc、pwic这些,然而如果真的需要自己画图、自己布线的话,还是需要花费不少心力的。

1、选择一个简单的soc芯片来学习

        很多同学都对ddr比较陌生,更对ddr如何进行pcb layout比较担心,那么我们就可以选择那些集成了ddr的soc,同样可以运行linux系统,比如说V3S就是其中的一种。和一般的soc相比较,它除了集成ddr之外,还集成了ethernet phy,这对于我们学习网络还是非常方便的。

        另外一般的soc中,cpu的频率都比较高一点,很多都是1G以上,cpu本身也支持mmu和cache。当然,它相比较mcu最重要的方面,还是在于对音频、视频编解码的支持,这方面mcu差很多。不过,这也与mcu的定位有关,毕竟大多数mcu都是用于工业上使用,而soc还是用在消费品居多,虽然soc在工业上面用的也不少。

2、选择一个开发板

        电商网站上V3S开发板很多,大家可以灵活进行选择。不过,V3S支持从SD卡启动,也支持Spi Nor Flash/Spi Nand flash启动,还支持USB启动,所以大家如果是为了学习V3S,还是需要购买一个SanDisk品牌的micro SD卡。这样,把所有的code都放在一张micro SD卡上面,就可以进行所有的驱动开发工作。

        V3S中SD卡的启动顺序优先级是最高的,如果SD卡启动失败,才会进行其他方式的选择。这方面来讲,对于初学者来说是很方便的。下面这张图就摘抄自V3S的芯片手册,Page 60

3、准备串口和type C线

        串口打印是嵌入式开发的主要方式。在没有驱动屏幕之前,开发者和芯片的主要交流方式就是串口,甚至对于部分应用来说,根本就没有屏幕,这也是有可能的,比如说一些服务器引用。所以对于开发者来说,最好购买一个usb转ttl的模块,这样就算将来学习其他的板子也会用得到。

        type C线主要是用来进行电源供电使用的。当然,也有的开发板选择的是传统的usb接口,这也是可以的,没有好坏之分。

4、准备开发的电脑和软件

        电脑是肯定要准备的,笔记本电脑最好,一般配置即可,内存最好大一点。此外,因为V3S的cpu是arm,所以这里就用到交叉开发的内容。所以我们需要依次安装虚拟机、ubuntu系统、交叉编译工具、uboot代码、linux kernel代码、build root代码这些内容。等到编译出合适的image文件之后,再把这些文件烧入到SD卡上面,这样简单的系统就可以跑起来了。

5、深入嵌入式linux驱动的开发

        在前面第4个步骤的时候,虽然uboot起来了、kernel起来了、文件系统也起来了,但是很多驱动还没有加载上去。所以这个时候才走到了linux驱动开发这个环节,拿到电路图、熟悉芯片手册、按照linux框架编写驱动代码、测试代码,这才是真正驱动开发的开始。这中间还会涉及到很多的问题,比如硬件的测量、板子的虚焊、驱动的bug,这都是避免不了的,慢慢往前做就好了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 自动化指南(繁琐工作自动化)第二版:零、前言

关于作者 Al Sweigart 是一名软件开发人员和技术书籍作者。Python 是他最喜欢的编程语言,他是该语言的几个开源模块的开发者。他的其他书籍可以在他的网站上根据知识共享许可免费获得。他的猫现在重 11 磅。 关于技术评审 Philip James 从事 Python 工作已经超过…

MobTech 秒验|本机号码一键登录会泄露隐私吗

本机号码一键登录是一种新型的应用登录方式,它可以利用运营商的数据网关认证能力,实现手机号免密登录,提高用户体验和转化率,降低验证成本和流失率。本机号码一键登录支持三大运营商号码认证,3秒内完成手机号验证&…

Java小课堂:自定义注解(案例:自定义DecimalFormat注解)

文章目录 引言I 预备知识1.1 元注解1.2 Target注解的ElementType枚举1.3 Retention注解的RetentionPolicy枚举II 自定义注解2.1 基本条件2.2 注解自定义属性的格式III 案例3.1 自定义DecimalFormat注解3.2 自定义json序列化解析引言 需求: 编辑费率限制的值时填写几位就保存几…

如何在前端中实现精美的图片和文字的垂直对齐

🌟所属专栏:前端只因变凤凰之路 🐔作者简介:rchjr——五带信管菜只因一枚 😮前言:该系列将持续更新前端的相关学习笔记,欢迎和我一样的小白订阅,一起学习共同进步~👉文章…

关于线性与条带化下LVM增加磁盘数据分布的讨论

关于线性与条带化下LVM增加磁盘数据分布的讨论一、环境介绍二、线性模式逻辑卷创建逻辑卷删除三、条带化逻辑卷创建逻辑卷删除LVM有两种模式:线性模式:先写满组成线性逻辑卷的第一个物理卷,再向第2个物理卷中写入数据,以此类推&am…

必看>>>>Linux数据库被其他服务器远程访问(修改权限、开设端口)

目录 一:修改权限 1.1 进入Linux数据库 1.2 修改数据库的远程连接权限 1.2.1 数据库远程权限修改命令 1.2.2 数据库远程权限查看命名 1.3 给Linux机添加端口 1.4 远程数据库连接 注意mysql中的中英文输入 一:修改权限 1.1 进入Linux数据库 文章…

【职场热点】软件测试岗位,真正达到月收入1万以上的有多少

在某一线城市相亲角,有位阿姨自称孩子是程序员、36岁、月入3万8,并直言“月入1万如讨饭”,引来大量互联网人自嘲式认领“乞丐”身份。今年2月,“月收入一万”的鄙视链压力给到了二线城市,有位入行2年的软件测试员发帖称…

1-python基础

1.字面量 被写在代码中固定的值 2.注释 # 单行注释""" 多行注释1:三对双引号 """ 多行注释2:三对单引号 3.变量与输出 age10 # 变量赋值 print("我今年",age,"岁") (1)pri…

Java数据类型与变量

1.字面常量 public class Demo{ public static void main(String[] args){ System.Out.println("hello world!"); System.Out.println(300); System.Out.println(3.1415926); System.Out.println(T); System.Out.println(true); System.Out.println(false); } 其中…

【CocosCreator入门】CocosCreator组件 | ParticleSystem (粒子)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中ParticleSystem组件是一个用于创建粒子效果的工具,可用于实现火花、爆炸、雪花等效果。 目录 一、组件属性 二、组件使用 三、效果演示 四、性能优化 一、组件属性 属性…

迅为3A5000_7A2000工控主板,龙芯自主指令集架构全国产工业级板卡性能

迅为iTOP-3A5000开发板核心板底板方式,底板资料开源,提供底板的原理图和PCB工程文件,可以根据需求定制属于自己的开发板。 核心板也支持工业级核心板定制开发。 根据二进制翻译功能使用,可流畅运行WIN和Android系统APP。 支持Loo…

renderdoc resource manager说明

*写在前面 只针对renderdoc opengl es 场景进行说明, vukan的没有,不过其实应该也差不多啦,若有必要后面再考虑补上。本文使用 文字图代码 的方式叙述,若只想了解原理过程,可忽略代码部分, 由于renderdoc代…

文章生成器-免费的文章生成器

随着信息爆炸的时代,自媒体人员不仅需要创造性的策略,还需要快速产生具有高质量文章的能力,这样才能快速响应趋势并保持优势。文章生成器,一款基于人工智能和自然语言处理技术的文本生成软件,可在没有任何人工干预的情…

企业搭建帮助中心的额方式有哪些?

帮助中心对于企业价值的重要性在于提高客户满意度和忠诚度,增强企业品牌形象,促进业务增长和提高利润率。通过提供详细的帮助文档和客户支持,企业可以向客户传达其专业知识和技能,并帮助客户更好地使用其产品或服务。这将提高客户…

C++(Qt)软件调试---使用任务管理器导出Dump(6)

C(Qt)软件调试—使用任务管理器导出Dump(6) 文章目录C(Qt)软件调试---使用任务管理器导出Dump(6)1、前言2、软件下载3、使用三款软件导出Dump4、软件下载地址更多精彩内容👉个人内容分类汇总 👈&#x1f44…

『.NET Tools』在.NET中实现汉字转拼音,只要一个方法就够了!

📣读完这篇文章里你能收获到 傻瓜式扩展方法直接使用可实现汉字转拼音及汉字转拼音首字母功能感谢点赞收藏,避免下次找不到~ 文章目录一、代码引用Step 1 : 安装包,通过Nuget安装包Step 2 : 代码通过扩展方法/帮助类实现实现汉字转拼音实现汉…

谷粒商城-redis分布式锁系列

1.压力测试出的内存泄漏及解决(可跳过) 使用jmeter对查询产品分类列表接口进行压力测试,出现了堆外内存溢出异常。 我们设置的虚拟机堆内存100m,并不是堆外内存100m 产生堆外内存溢出:OutOfDirectMemoryError 原因是…

2023.4.3

ctrlf:全局替换 alt鼠标左键:整列编辑 ctrlaltl:格式化 AJAX 简介 概念:AJAX:异步(客户端不用等待服务端的反应)的Javascript和XML AJAX的作用: 与服务器进行数据交互:通过AJA…

Adaptive AUTOSAR——Execution Management(VRTE 3.0 R21-11)

ChatGPT回答: Adaptive AUTOSAR Execution Management 模块是用于管理软件执行的模块,其主要功能包括: 任务调度:支持对任务进行调度和执行,以实现系统中各个功能的协调运行;软件组件管理:支持对…

python 读取xml从入门到精通

XML (Extensible Markup Language),可扩展标记语言,是一种被广泛应用于网络上的文件格式。在互联网上,网页里的信息都以 XML格式存储,例如 HTML、 CSV、 JSON等。随着电子商务的发展,人们需要在…