EDA365电子论坛网

标题: ARM初学者学习ARM的步骤 [打印本页]

作者: ulppknot    时间: 2021-5-6 10:46
标题: ARM初学者学习ARM的步骤

# t+ \9 W3 V( \4 Z) E% T8 j很多人学完单片机就想学arm,但不知如何去学~现在列出一下学习这方面的步骤-----基于linux系统的学习步骤如下:(一步步来哦:
& o/ C4 s& K+ _5 [9 n6 q: s其实这也只是个基础,以后实际做项目了还要去学很多* E* _1 ?4 [: r5 A

- \1 z# `  w- M" W+ I# W2 B1、Linux 基础7 y. x' f9 M) r0 @

5 E  y; o8 L" W1 P1 q4 p* [安装Linux操作系统
/ M+ j0 S: ~* i2 Z4 |& _Linux文件系统
% @% Y/ W! X% P; t! a1 BLinux常用命令
3 S* ]8 L9 ]) K# _$ W3 H" XLinux启动过程详解
0 _* Z, }* c# d, T熟悉Linux服务 能够独立安装Linux操作系统 2 G8 _# J; ~/ v
能够熟练使用Linux系统的基本命令 2 h9 \! p; @2 k& w& w) G
认识Linux系统的常用服务 安装Linux操作系统
/ s, D) h  r7 o5 DLinux基本命令实践 / O, g% a% P; c+ @/ y; U( v) F
设置Linux环境变量 9 D3 w7 w6 l# k  `' M# t
定制Linux的服务 Shell 编程基础使用vi编辑文件
0 ?6 ]( O* C3 Y( p9 \" j使用Emacs编辑文件
9 _# [  m0 a4 ]( O& f  B使用其他编辑器
% }% A/ e7 [+ K6 L, U% N2 }+ r# W2、Shell 编程基础, c3 N! a& v; ?. a1 v
Shell简介0 d( M( l# B9 E( ?1 T
认识后台程序4 _3 P9 \+ R# B: z
Bash编程熟悉Linux系统下的编辑环境
9 B- ~6 M8 B5 J7 v+ @& i' D熟悉Linux下的各种Shell 1 G/ Q6 R9 R( c5 P: T# D) ^- X
熟练进行shell编程熟悉vi基本操作 # _0 ?" V$ B7 I" v
熟悉Emacs的基本操作 6 ]. Z* q0 w- F9 h% y5 E
比较不同shell的区别
$ l5 i( a) l6 x. w/ _" d编写一个测试服务器是否连通的shell脚本程序
7 O6 d  c7 G' X* J0 e1 n8 k, s  d4 T2 K编写一个查看进程是否存在的shell脚本程序
$ t5 L; Z7 x3 K/ ]: E- f4 q: o编写一个带有循环语句的shell脚本程序
7 b( g- }9 p# }% R+ K3 R  B3、Linux 下的 C 编程基础
0 I$ D* n6 Z% {4 f. N4 slinux C语言环境概述 & X+ k% P2 l+ E  r8 j, g" \
Gcc使用方法 ! y( {  C* G; F; k
Gdb调试技术 8 Y$ ?2 O5 Q2 ]! X" V
Autoconf
2 O9 c% n: o& |# O9 }* @Automake 9 }$ F1 e& ~6 a4 G  W9 I' O
Makefile ' Q) M+ x9 c& z0 s
代码优化 熟悉Linux系统下的开发环境- J; y" {0 G3 n, g# a* T0 F, n
熟悉Gcc编译器 ( s3 v. ^  w0 X
熟悉Makefile规则编写Hello,World程序 8 m3 X( t7 o: ]$ g
使用 make命令编译程序 $ n0 p: F: @% u( v' \# `' [9 P
编写带有一个循环的程序
5 [) j: ?) Y: w调试一个有问题的程序
+ ~" y2 w9 k5 P% a# H* J: T% @4、嵌入式系统开发基7 M! M! t$ V  }, M1 ?
嵌入式系统概述 : Z, W" G7 q  H. V5 Y3 a& G# m
交叉编译
; Y6 e: c* y9 K7 M( u  [' [+ C配置TFTP服务
* A2 x4 X5 ^$ V) L配置NFS服务 5 D9 A5 J& G9 T1 x
下载Bootloader和内核
- z( j8 @0 G' e/ D: W9 W嵌入式Linux应用软件开发流程/ z  Y9 X6 s2 k* u3 ^; T
熟悉嵌入式系统概念以及开发流程 , x+ C) K& r6 l; E9 v7 G9 d% M% h
建立嵌入式系统开发环境制作cross_gcc工具链 ( ]6 `8 h3 t1 O) u3 X) L" \
编译并下载U-boot
8 E5 b0 g& n2 h2 |7 Q5 L编译并下载Linux内核 7 T; X8 Y9 u  ]2 [8 T) Z2 y
编译并下载Linux应用程序& x" M" h% k8 f; P* D  Q6 s% ?% Y
4、嵌入式系统移植$ o! q/ q5 n3 A; V9 J
Linux内核代码 , ?3 _' ?, b: i7 y, a% {
平台相关代码分析
# ?) q: G/ B- X, U: F  s& {ARM平台介绍
# ^! U! y0 }" d% A平台移植的关键技术 ! P$ a5 i1 A5 k3 u" k, f4 D% X9 n
移植Linux内核到 ARM平台 了解移植的概念 6 U9 |7 a; {. b9 R0 L* _1 y
能够移植Linux内核移植Linux2.6内核到 ARM9开发板: |1 r' O2 _6 _3 s3 m! v8 U( e
5、嵌入式 Linux 下串口通信
0 D% w# R" `3 ?4 L3 [: D! l串行I/O的基本概念 8 c0 R$ n7 o: w9 K: n
嵌入式Linux应用软件开发流程 9 G8 N' }2 Z# A' c4 ?
Linux系统的文件和设备
# u2 k6 I( j. K: X3 O- G% @与文件相关的系统调用
$ v* k' g9 i- V配置超级终端和MiniCOM 能够熟悉进行串口通信
: D  U1 i& s8 Q" Z8 `9 C' t熟悉文件I/O 编写串口通信程序
+ a; _/ u3 E1 H! H编写多串口通信程序
8 z. }* J2 S" `. l1 G( O. n6、嵌入式系统中多进程程序设计
9 L2 w0 G, Y( _$ X* q5 SLinux系统进程概述 / N* \2 c) E/ ?! S0 [! t8 ?7 A
嵌入式系统的进程特点
$ M5 l; B% a1 s8 u& v5 H. N进程操作 - ]: ~# \$ d8 R$ e) K3 v
守护进程
" e  S% Q7 c. n( G7 I1 K- f. l) r相关的系统调用了解Linux系统中进程的概念 ' _. U7 T( b# j# j/ Z
能够编写多进程程序编写多进程程序 , f8 [) F3 n& g
编写一个守护进程程序
- o; J$ J) S1 Dsleep系统调用任务管理、同步与通信 Linux任务概述
- _8 f+ ?) t. `0 L" Y1 r, H( o任务调度 ( U" `+ x- P; r' x+ `9 @
管道   i  s, v5 p1 W) g) k  v
信号
) `; `: m0 j  ~共享内存 * y+ {. L8 j8 x, `; n* L
任务管理 API 了解Linux系统任务管理机制 " w8 y1 m* z/ U' U9 L
熟悉进程间通信的几种方式
. Z8 [* N& j; G) B% H熟悉嵌入式Linux中的任务间同步与通信! O. F; D, O$ S" R6 k8 P; _7 B
编写一个简单的管道程序实现文件传输 + i* {6 C' J. H) Y) E
编写一个使用共享内存的程序2 P6 u9 V  `1 L* @8 C. ]0 L
7、嵌入式系统中多线程程序设计
. ?/ q9 k8 Z# J. }# q; H: M1 b线程的基础知识
2 B) \% Y( R. C2 B: S2 G多线程编程方法
3 u/ c& {1 S$ N$ S. {线程应用中的同步问题了解线程的概念 ( A5 E& S% s$ ^% h+ S6 @- z
能够编写简单的多线程程序编写一个多线程程序2 U$ D) m0 I! t+ i9 \; n, m" v; g4 w
8、嵌入式 Linux 网络编程, U3 F6 u- {" ]) e1 }$ Y) h
网络基础知识 . T0 R( c2 Z$ y: V3 }( M: y6 f$ _
嵌入式Linux中TCP/IP网络结构 2 I* _6 U3 N, {0 Q2 E- l+ \
socket 编程
9 [3 a* {8 }2 ?- r常用 API函数
3 W9 c& w6 r$ o9 E+ K+ Q9 _分析Ping命令的实现
9 ~' L5 Q- V( {9 J7 @" o基本UDP套接口编程 + S2 x$ s$ w6 A) x. [5 e: Z
许可证管理 - i* j- F* D8 j+ B
PPP协议 ( a1 V9 C; {5 H3 E
GPRS 了解嵌入式Linux网络体系结构 / C; r$ i- u: f; y: X
能够进行嵌入式Linux环境下的socket 编程 5 B" `$ n7 g! H8 ?
熟悉UDP协议、PPP协议
% m* b1 s1 y; q4 t. ~熟悉GPRS 使用socket 编写代理服务器
6 y, d) E  b! |6 p使用socket 编写路由器 * `+ ?7 o& l- S7 L. m
编写许可证服务器
: K% t: e- O: {3 H& I& w指出TCP和UDP的优缺点
& V3 l% {& L1 I7 W9 s编写一个web服务器
3 c8 ]( T$ c$ g1 U7 C( D$ d0 B" R7 E编写一个运行在 ARM平台的网络播放器: V$ u( M& M5 ?" o3 z. P
9、GUI 程序开发* |1 J0 L" B: k: A- g& a
GUI基础 8 k9 n+ h3 d# I9 }" n6 _  W9 }3 b, ]
嵌入系统GUI类型 , l, [- @5 p. c- b' _8 d. g
编译QT * T9 Y1 e/ P- E2 F" f
进行QT开发熟悉嵌入式系统常用的GUI2 z: E1 g7 G1 u1 O; q
能够进行QT编程使用QT编写“Hello,World”程序
7 L! e7 U) X! Z" b) r; O0 O5 `. ^$ h调试一个加入信号/槽的实例 0 z4 z% w9 M& J; U9 D# B
通过重载QWidget 类方法处理事件
: k/ ~7 S0 E: X" `9 h10、Linux 字符设备驱动程序
0 l! X, l+ M! l4 @" ?+ G# k设备驱动程序基础知识 # S% u. f! k& O  N" I
Linux系统的模块
) ?9 l3 l( P; v7 H( k7 [$ T" }' A字符设备驱动分析
9 w1 }  [' a! l7 Ifs_operation结构 4 s. h6 _, y' ]
加载驱动程序了解设备驱动程序的概念
1 Z6 X( Y4 H9 v" Y( e% i了解Linux字符设备驱动程序结构 * e2 z  v& ~9 `) z% w- [7 ~
能够编写字符设备驱动程序编写Skull驱动 1 S% l; |; g; S3 \1 X8 [
编写键盘驱动 1 |* A( I" H& p; l" v+ X$ W7 d1 j
编写I/O驱动
, R# Z1 q) T9 X) J+ d; @2 s分析一个看门狗驱动程序 : R# n3 y& d, c3 e
对比Linux2.6内核与2.4内核中字符设备驱动的不同+ w8 j. |5 ]& w; z
Linux 块设备驱动程序块设备驱动程序工作原理
: v0 Y9 K7 b6 H3 Z) h  N$ |典型的块设备驱动程序分析 2 \, N% c& r3 I, j  b
块设备的读写请求队列了解Linux块设备驱动程序结构
% Q' D! L% [- o0 b: j+ Y能够编写简单的块设备驱动程序比较字符设备与块设备的异同
0 G' h, ~6 O( ]3 L* W; E( i9 e编写MMC卡驱动程序
) s* [0 H. j6 ?, i$ D& k0 r7 M分析一个文件系统 ( w) O2 W3 I! _
对比Linux2.6内核与2.4内核中块设备驱动的不同
; V% L& J* j$ {* I" e+ A1 h11、文件系统
) O; V, C5 m4 a/ Q/ N& p! P虚拟文件系统   i6 [6 c  @6 g: X
文件系统的建立
. N* `7 a8 P0 O4 K) I8 t: hramfs内存文件系统
/ Z! J1 t% ^2 G: W- uproc文件系统
6 c& k1 z6 l6 [, [( Vdevfs 文件系统 ; J* x( X5 F/ w% y; G+ r$ d# b
MTD技术简介 8 |) Q9 |/ a. m1 n# m
MTD块设备初始化 * E/ X! Y; ?+ b  A: c
MTD块设备的读写操作了解Linux系统的文件系统 9 w3 }# G; t* z. F' O* @' `. O7 p
了解嵌入式Linux的文件系统
1 C' N4 x; x7 A: Y) ]/ p% ^% v# C' l了解MTD技术 + A+ o$ J) y" n7 w7 I& I& e& W7 T
能够编写简单的文件系统为 ARM9开发板添加 MTD支持
$ s/ S" P0 b" C* ?) f  R6 s移植JFFS2文件系统 6 I& ^$ F4 {' _6 k7 u- p3 b
通过proc文件系统修改操作系统参数
6 z# F" t% p: _  `5 \分析romfs 文件系统源代码
2 x) @6 ~; z" g8 ]8 N8 |创建一个cramfs 文件系统
作者: xiaogegepcb    时间: 2021-5-6 13:20
ARM初学者学习ARM的步骤
作者: Memory00    时间: 2021-5-6 15:28
虚拟文件系统,文件系统的建立
! _  p/ j1 [0 u
作者: Memory00    时间: 2021-5-6 18:28
掌握好基础知识
% u/ s/ \. ^; \) T6 ?




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2