EDA365电子论坛网
标题:
学习嵌入式开发ARM的方法
[打印本页]
作者:
MLXG
时间:
2021-9-13 10:20
标题:
学习嵌入式开发ARM的方法
1
、嵌入式是什么?
( b q) i* Q: W( L% u% W/ s
$ c3 g: q9 z1 I
2
、嵌入式需要哪些知识?
, [+ ^! ]5 q* s+ A4 ~% S
( J% j( [9 g6 L$ l. B
知道了这两点,好办!我就开始规划学习路线。计算机的基本理论不能丢,于是重点看组成原理,数据机构,操作系统、
c++.
同时论坛上了解到,实时操作系 统
ucos
是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有很多相同的问题,我就看书,分析代码,一遍 不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。在这段时间掌握的东西不多,但是,对我以后 的影响很大,我想起了大学时一个同学跟我说过了一句话:大学里最重要的不是学到了什么,最重要的是学会怎么学!大概是这个意思。
2 T) [8 M6 J- W
9 y: m2 r5 @) `/ f P
2 Y- t: Q% Q7 P" p
学习嵌入式在这里我把它单独列出,文章有点紊乱,但是内容希望有益。
- X/ K( ]. t8 D \4 }4 u) i" G+ }
" U0 Y2 ~! ^# q, R* d- a& }
1
、学习
linux
根据我在论坛的了解,我选择学习嵌入式
linux
,刚好我们学校也重视嵌入式
linux
,从实验室到课程安排都是关于嵌入式
linux
方面,天时地利!这里我把学习
linux
的经验和教训说说。
$ I8 F& m, a! s8 F# e6 y6 I
6 _& e$ S" {! {
可以这样说,在论坛里说道学习
linux
差不多就学习
linux
内核。于是我电脑里安装了
linux
就开始看
linux
内核方面的书了。我记得来学校以 前就买到一本陈莉君的讲
linux
内核的第一版,现在有第二版了。我就开始看那本说,大家说
linux
内核情景分析不错,我就买了上下册,后来又买了 《深入理解
linux
内核》,最后猜蛄嗣
虏俚摹肚度胧较低场芬彩欠治鰈
inux
内核代码的,主要讲
arm
相关的。
" `9 J( r% v2 S- J0 q
7 V9 L( B2 F0 E: s1 ]
看内核期间是个
非常痛苦的过程,看情景分析有种在森林中找出路,其间我组织了一些同学学习内核,几乎没有几个能坚持下来的。我认为我是坚持下来了。情景分析在看第一、第
二遍是几乎没有摸到门道,我分析有三个方面的原因:
1
、自己的基础差,这是最关键的。
2
、内核本身很难。
3
、没有交流和高人指点。到了第三遍时我才摸到 门,才差不多知道个
linux
的大概脉络,很多细节也是稀里糊涂。
; {( {* y! L |$ u3 Z. m: c
; K( y; [, t+ V# ^% }
学习
linux
总结,这里声明一下,我指的嵌入式主要是偏向软件的嵌入式。学习嵌入式的重点和难点关键在操作系统,如果没有掌握操作系统,我认为很难把握一个嵌入式系统。即使在做嵌入式开发中,作应有层的开发几乎可以不知道操作系统也可以开发,我认为那是浮在表面的。很难深入和提高自己的层次。声明:一孔之见!不可深究!
9 w) `) i( s+ O) R$ \( f) Y
0 W. U0 s' ?, c+ t4 o& `5 ]( F
在学习
linux
内核过程中犯了一个极其严重路线错误:对
linux
几乎不懂就开始学习内核。我个人推荐一个学习路线是:使用
linux—
〉
linux
系统编程开发
——
〉驱动开发和分析
linux
内核。而我差不多相反,实际上你不会使用
linux
也可以学习内核,但是如果你懂了这些东西学习更有效率。
" }! _ \2 h. D; g+ a6 P
7 {; a& A& r F* R
关于要不要学习内核的问题,我的回答如下:不一定。如果你是喜欢钻研的那你进入内核会满足你的欲望。同时对你以后的嵌入式系统的开发有很好的影响。如果
你想从事嵌入式
linux
系统开发,最好对内核有所了解。如果仅仅是做应用开发没有必要。我打个比喻:
c
、
c++
、
java
等语言是武林中的某个武林派别 的话,如什么拳法,什么刀法等,那么
linux
内核应该是一个人的内功的反应。
$ H' [* W/ M4 N H! R) Y" O5 C' C% {; G
6 Q: v3 i2 \0 \+ ?
怎么开始学
linux
内核:最好有三件宝物:《深入理解
linux
内核》《情景分析》和源代码。
8 a0 Q8 n' `) O! t+ Z
8 @8 M- ?+ a$ [3 ?. R2 Z9 V
先看《深》,那主要讲原理,好像市场上有本讲原理性并且更浅,《
linux
内核设计与实现》听说不错。如果没有学习操作系统的,像我这样的,最好先看看 操作系统原理的书。看了几遍后,就看情景分析,最好对着《深》看。两本交
*
看,《深》是纲,《情》是目。最后深入代码。
4 y% g* `' A v" c
6 s" t I/ E9 F5 ^1 S9 k2 D5 Z
2
、学习嵌 入式
linux
学习嵌入式,我认为两个重点,
cpu
和操作系统,目前市场是比较流行
arm
,所以推荐大家学习
arm.
操作系统很多,我个人对开始学习的人,特别不是计算机专业的,推荐学习
ucos.
那是开源的,同时很小。学习很好。为什么选
linux
,我不想讲太多,网上这方面的太多,但是我在工作中发 现,做
linux
的技术路线很难,在
windows
几乎不会有的问题,在
linux
开发中几乎遍地陷阱。一掉进去划很长时间出来,一旦解决自己又长进了! 相对来说开发周期长,难度大。现在资料也逐渐丰富起来,难度也降低了些!
4 C$ v* G! x2 t% V _( ]# [4 K O+ o
/ J' C) u8 X. y' M; }& L5 J
至于怎么学习,这是他的特色地方,必须有块开发板,我是同学里最早买学习板的,虽然化钱,我认为值。对我实习和工作产生了很大的影响。
/ F$ Y. {3 W* Z$ r0 i* x5 B P. [
作者:
damengshu
时间:
2021-9-13 13:43
还是先买块开发板 把基本的东西都学会
# z4 S8 M9 d4 [0 f" I5 D, Z8 N
作者:
CLBuu
时间:
2021-9-13 13:57
自己一定要动手 抄或自己写 慢慢就会了
作者:
guanshen
时间:
2021-9-13 14:04
linux开发周期长,难度大
作者:
faker12
时间:
2021-9-13 16:40
感谢分享 很受益
作者:
ldezgr
时间:
2021-9-17 08:56
学习学习来看看
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2