搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
你好赵伟
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
CVSS4.0将于2023年底正式发布_cvss4.0 3.1
2
数据结构(4.1)——树的性质
3
OpenssH 漏洞修复_openssh漏洞
4
深度学习论文导航 | 11 LaneNet:基于实例分割方法的车道线检测网络_基于实例分割的车道线检测算法
5
c++编码规范(五)_禁止使用rand生成伪随机数
6
GitHub十大Python项目推荐,Star最高26_github 排行 python
7
vs code配置MySQL,实现连接、查询等功能
8
Element UI 消息提示 Message_element-ui message
9
每天一个数据分析题(四百二十九)- 假设检验
10
小程序消息推送(含源码)java实现小程序推送,springboot实现微信消息推送_微信小程序发送消息通知 java代码
当前位置:
article
> 正文
做驱动的知识背景_写驱动程序对硬件要精通吗
作者:你好赵伟 | 2024-07-23 16:52:59
赞
踩
写驱动程序对硬件要精通吗
写驱动程序必须了解硬件机理。与PC机的驱动程序开发不同的是,PC上的驱动程序开发一般主要需要PC上装的操作系统的实现和要做驱动的那个外设的硬件构
[52RD.com]
成;而作嵌入式驱动开发很多是没有操作系统的,很多只有一套简单的监控程序,所以需要了解整个板子的硬件构成。这就要求你最起码的几门功课要过关:电路基
[52RD.com]
础、模拟电路技术、数字电路技术。这只是个起步,之后呢,如果做控制类的板子肯定要懂自动控制原理、现代控制理论,如果做通讯类的板子肯定要了解通讯原
[52RD.com]
理、高级通讯原理、信号调制方面的知识,其中知识的复杂不是两三年能搞定的。据个例子说,做手机驱动的如果连直流漂移都不知道,肯定看不懂硬件资料,能写
[52RD.com]
出来代码才怪呢。[52RD.com]
[52RD.com]
驱动程序是小而精的程序,它要求对数据结构、算法、构架、编译原理各个方面都有深入了解和丰富的实践经验。如果做复杂的带有操作系统的板子,那么肯定还要
[52RD.com]
了解操作系统的内存管理、线程调度等知识。虽然PC机的开发上有很多常用算法模块已经有很优化实现,但是这些代码往往不能直接套用在嵌入式设备的代码里,
[52RD.com]
原因可能因为这段代码太大、太全、或者不符合项目的要求。嵌入式设备的RAM很小,因此我们编写代码必须仔细把握大小,甚至要关注到Byte级。嵌入式系
[52RD.com]
统承受不了很多冗余的代码,所以很多常用算法都没有现成合适的函数库,需要你重新实现,根据硬件有针对性的重新编写。因此,精湛的编码技术、周密的代码规
[52RD.com]
划都是必备的基本功。[52RD.com] 当然最为重要的还是综合能力。比
[52RD.com]
如一串口程序握手时出现错误失败了,原因可能有很多:线断了?接头脱焊了?程序有问题?芯片中代码有问题?等等等等。要做出判断很难。这时候我们就应该具
[52RD.com]
备审查入微的能力,要能仔细判断出问题出在那,或者给出若干种Debug问题的方案逐个去突破。一般来说,我认为在开发过程中用脚本来辅助开发是一种效率
[52RD.com]
很高的手段,比如windows下的wsh或者linux的shell
[52RD.com]
script都能够用来辅助代码的生成,或者用于构建自动测试环境。另外,由于做的很底层,技术很前卫,所以很多情况下我们手头上只有一些硬件的电气资
[52RD.com]
料,或者有一大篇别人编写好的代码去参考。这时候,自学很重要,独立分析别人代码的能力也很重要。诸如SlickEdit、SourceInsight之
[52RD.com]
类的辅助分析工具一定要熟练运用才行。(不过,幸好这些东东看看联机帮助就能搞定了,并不复杂)[52RD.com]
[52RD.com]
整个研发中最最需要必备的能力就是外语能力了,尤其是英文。因为几乎所有的硬件资料都是纯英文的,等待别人翻译成中文根本不可能(翻译出来估计也都过时
[52RD.com]
了),甚至有些是硬件厂商提供的绝密资料,能指望谁翻译去?我觉得外语能力也是我今后最需要加强的,至少应该以下4点:1)
[52RD.com]
不借助词典能够基本看懂英文技术文档;2) 老外开讲座的时候能够跟得上并随手做笔记;3)
[52RD.com]
用英文写工作总结轻松自如,写代码注释表述精确无误;4)和老外电话或者当面聊天很顺当。
[52RD.com]
[52RD.com]
×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
[52RD.com]
[52RD.com]
感觉咱们这个论坛怎么这么冷清,上面的引用一位版主的帖子,发起一个话题,给大家增加点热气。我做驱动两年了,认为做驱动在不同的公司会是不同的层次,引
[52RD.com]
用的这个帖子可能要求太高了,应该是平台提供商做的层次,我认为处于design house这个层次的话,做驱动需要以下的知识背景:
[52RD.com]
[52RD.com]
1、语言基础
[52RD.com]
[52RD.com]
ASM,C,C++,c语言必须要熟悉,(我不说精通),因为驱动大部分都是c写的,因此你首先要看懂别人的代码,才能集百家之长。这只是入门条件哦,如果要深入的话,估计到时候自己就知道自己的差距在哪里了。
[52RD.com]
[52RD.com]
2、硬件基础
[52RD.com]
[52RD.com]
模拟电路,数字电路,肯定是要有基础的。因为做驱动肯定要与大量的datasheet打交道,没有这点知识背景,连电路图都看不懂,估计会很吃力的。
[52RD.com]
[52RD.com]
3、英语能力
[52RD.com]
[52RD.com]
至少能看懂datasheet和技术资料吧,哈哈,别的就不说了
[52RD.com]
[52RD.com]
4、工具的使用
[52RD.com]
[52RD.com]
souce in signt,TRACE32,示波器,等等等,分别是代码编辑工具,仿真调试工具,硬件调试工具,这应该是我们debug时候的朋友了,当然还有更好用的工具,就要看你公司的状况了,当然高手也不一定必须用这些工具,不过善假于物,总会事半功倍的!
[52RD.com]
[52RD.com]
[52RD.com]
[52RD.com]
不敢称是一家之言,小小体会。欢迎大家交流。
[
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/你好赵伟/article/detail/870756
推荐阅读
article
oracle
批量插入
数据
_
oracle
新增
多条
数据
sql
...
其中,table_name为目标表名,s为源表查询结果集,column_name为目标表和源表的关联列,MATCHED表...
赞
踩
article
django
框架下个人
着装
助理
系统
/
python
...
本个人
着装
助理
系统
采用编程语言Python,开源框架Django实现
系统
的架构,
系统
的数据采用数据库MySQL进行存储,...
赞
踩
article
oracle
case
when
的使用方法...
大家都知道Case
when
的用法,一旦满足了某一个WHEN ,则这一条数据就会退出CASE WHEN,而不再考虑其他C...
赞
踩
article
Spark
基础学习笔记24:
Spark
SQL
数据
源
-
基本操作
_
sparksql
数据
源
头歌答案...
使用各种
数据
源
:parquet, json, hive表, jdbc_
sparksql
数据
源
头歌答案
sparksql
数据
...
赞
踩
article
Android
Studio
Jellyfish
|
2023.3
.
1
,快来看看有什么更新吧_and...
*迭代事件:**可以按时间倒序查看 Crashlytics 报告中的多个事件**自定义数据:**查看每个崩溃报告的自定义...
赞
踩
article
Visual
Studio
Code
-> VS
Code
开发
环境
搭建 ----
Python
开发
...
VS
Code
开发
环境
搭建 ----
Python
开发
环境
搭建 及
代码运行
平台:Windows 10IDE:
Visual
...
赞
踩
article
oracle
批量
插入
数据(请以
集合
形式)
_
oracle
type
集合
插入
...
背景:往sql里面传数据时以list
集合
的形式,因为你要
批量
插入
。1.sql语句如下写
[详细]
-->
赞
踩
article
在
LUA
中
使用
异步
IO
的思考_
lua
异步
...
本文介绍利用
lua
协程+libuv 实现
异步
IO
的方法_
lua
异步
lua
异步
...
赞
踩
article
火爆程度超过
微信
:
最近
全网刷屏
的
社交
APP
突然
下架
了
...
????????关注后回复“进群”,拉你进程序员交流群????????来源丨扩展迷EXTFANShttps://mp.w...
赞
踩
article
N1
刷
Openwrt
...
版:目前+版也已经用上了flowoffload,两个版本从此可能就只有内核版本上的区别了。区别:+o版内核较低,比较适合...
赞
踩
article
史上最全
大
数据
学习
资料
_
大
数据
课程
书籍
辅助
资料
...
史上最全
大
数据
学习
资料
阿甘阿甘琐记昨天本教程包含视频和
书籍
两部分,视频主要是各
大
培训机构的教学视频,
书籍
主要是题主自己收...
赞
踩
article
Seq2Seq
模型
及
Attention
机制_
seq2act
模型
是什么...
seq2seq
模型
seq2seq
模型
虽然简单,但是特别经典,它的出现可以说给整个NLP带来个翻天覆地的变化。网上已经有很...
赞
踩
article
大语言
模型
-
文本检索
任务
基准
BEIR
...
BEIR
(A Heterogeneous Benchmark for Zero-shot Evaluation of I...
赞
踩
article
准备
杭电
复试
的路上_
杭电
复试
准备
...
现在是晚上11点,我刚才在看数据结构的排序部分,耳朵里听着《一百万个可能》,忽然觉得奋斗的过程真的是一份值得珍惜的时间,...
赞
踩
article
超详细整理,
Java
接口自动化
测试
实战-
rest
-
assured
_
java
+
rest
-
assured
...
测试
给我们的产品带来的好处是非常多的,这里我们只是基于
rest
API进行
测试
,在单元
测试
中来说,这是一个粗粒度的
测试
,...
赞
踩
article
如何在
Python
中
使用
Rest
API
_
restapi
python
教程...
当今数字世界中的大多数Web服务都通过应用程序编程接口(
API
)使第三方应用程序可以访问其数据。要构建这些
API
,我们需...
赞
踩
article
【MQ】
Kafka
如何
保证
消息
不
丢
失
_
kafka
批处理机制,批
消息
还没
发送
出去时
broker
挂掉会导...
文章目录Producer端
保证
消息
不
丢
失
Consumer端
保证
消息
不
丢
失
Broker端
保证
消息
不
丢
失
总结Producer...
赞
踩
article
深度解析 |
Web3.0
面临的
网络安全
风险
和挑战_
安全性
是
web3
项目...
互联网发展的下一篇章是高度去中心化的架构,但除了Web2.0的常见
风险
外,
Web3.0
也带来了许多新的挑战和威胁。_安全...
赞
踩
article
杭州
电子科技
大学
考研
经验
贴_
杭州
电子科技
大学
2018
研究生
编程题...
本人为18级
杭州
电子科技
大学
考研
上岸学生,写这篇文章是希望后面
考研
的同学能够不那么辛苦。
杭州
电子科技
大学
日后考试难度只会...
赞
踩
article
C语言
与
硬件
抽象
层(
HAL
):编写跨平台
硬件
驱动
与设备访问层(一)_
硬件
驱动
开发
...
文章探讨了
C语言
在
硬件
驱动
开发
中的重要性,强调了其低级
抽象
、高效性和可移植性,以及如何通过
硬件
抽象
层(
HAL
)实现跨平台...
赞
踩
相关标签
oracle
数据库
sql
python
开发语言
php
spark
parquet
json
hive
jdbc
android studio
android
ide
code runner
python编程环境搭建
vscode
开发环境搭建
批量插入
lua
libuv
协程
异步IO
java
人工智能