找回密码
 注册
关于网站域名变更的通知
查看: 566|回复: 3
打印 上一主题 下一主题

ARM初学者学习ARM的步骤

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-5-6 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
: T: ?/ f- J% n! o% X
很多人学完单片机就想学ARM,但不知如何去学~现在列出一下学习这方面的步骤-----基于linux系统的学习步骤如下:(一步步来哦:$ \$ `7 M: \" J# Y1 d$ j8 K/ M
其实这也只是个基础,以后实际做项目了还要去学很多5 g, X+ s& `' X' E9 v4 C5 I

% k# L: `% ?$ g  p/ `/ o  _1、Linux 基础
; N: w0 f) d3 v! ^, n$ P6 S5 a: _6 a7 C+ t
安装Linux操作系统 8 [% s$ j' q# m8 D# `+ a; [
Linux文件系统 9 H8 _4 ]& p8 `  F6 N; K! m
Linux常用命令
" Y5 J7 y2 m) S7 \$ ]& j) U: eLinux启动过程详解 " C, a6 \2 J$ B3 u& R
熟悉Linux服务 能够独立安装Linux操作系统 ; K' {  g3 }: ~, D
能够熟练使用Linux系统的基本命令 & t4 B% B( D! f. r( P, }8 z/ d9 X
认识Linux系统的常用服务 安装Linux操作系统
, }+ ?5 U0 f& aLinux基本命令实践   Y3 ?/ {, @( @+ H; s. l+ t
设置Linux环境变量
: h2 b4 B' w6 ^4 W2 _) D2 r定制Linux的服务 Shell 编程基础使用vi编辑文件 ! M0 g- y. ^; _; P& m/ n$ N1 Q
使用Emacs编辑文件
+ ?6 `1 E2 `- k) l使用其他编辑器
% A' P/ A0 F! P+ h' E2、Shell 编程基础) M- \; w' h* M1 d$ g/ C' L
Shell简介
+ P' F% N# ]  k+ O6 p认识后台程序
& ~/ N. {6 v' B) `2 t/ ~; u; ]Bash编程熟悉Linux系统下的编辑环境
* D: e/ V7 x" O* B' B( b6 n! `4 K熟悉Linux下的各种Shell
* {1 y' F, Y: w# j* N& j$ t0 `熟练进行shell编程熟悉vi基本操作 ! n- i. a1 A9 ]" A# `; Y* x
熟悉Emacs的基本操作
2 H4 U9 n$ {& r6 q! J0 l: P3 D) A比较不同shell的区别 , w( Z  u6 ^& j: A0 j! r
编写一个测试服务器是否连通的shell脚本程序 8 {! C2 |9 F1 D) ?  r* z% Q: g
编写一个查看进程是否存在的shell脚本程序
9 V, o! N+ m3 d- j! V编写一个带有循环语句的shell脚本程序) n; z0 ]' v- Q' T' c% @
3、Linux 下的 C 编程基础
: N3 K6 M* u! q* p" Q. clinux C语言环境概述 1 N) k+ t( m, D7 x
Gcc使用方法
& Q9 i3 O' r3 XGdb调试技术 " B4 ?  Z- z1 E9 R6 C, S1 D# {5 j
Autoconf 6 r1 `% F; Z! g/ t
Automake * `2 o5 m* h: E) W" H
Makefile 1 d9 N6 ?* M6 X- S% g. k
代码优化 熟悉Linux系统下的开发环境
1 \$ G, _. k4 X5 p. a+ M熟悉Gcc编译器 6 z+ [% ?: w! e2 b
熟悉Makefile规则编写Hello,World程序 ) J- Z1 f# ~5 b
使用 make命令编译程序 ; b0 h" l7 h" C1 A8 r
编写带有一个循环的程序
$ e6 I# Y3 {" U6 F3 G调试一个有问题的程序
  g( A. n1 i: C; ~  E' O4、嵌入式系统开发基
: W% m$ W" Q# P$ r嵌入式系统概述
7 y/ H/ U4 B% _5 S8 G8 i交叉编译
3 e$ R" C1 }7 i配置TFTP服务
; l* H( c4 O6 o) A- _* b配置NFS服务
, P0 N0 g" X* [下载Bootloader和内核
4 Q9 p; B$ J1 S" P3 m% c嵌入式Linux应用软件开发流程
' N1 ]+ e0 Z0 v5 }熟悉嵌入式系统概念以及开发流程
) J1 \+ u4 u+ x: ?  A9 X$ q! a建立嵌入式系统开发环境制作cross_gcc工具链
3 S- m9 ?" K& W( c! S% K+ o+ _编译并下载U-boot
8 W& g& f5 P) }) O1 e" `) |, \编译并下载Linux内核
! \3 l+ g, P$ u编译并下载Linux应用程序7 ^1 m& L3 {/ x2 f
4、嵌入式系统移植' I* \1 \+ c: A0 I! R- X
Linux内核代码 5 ]" f- W6 w7 v8 G3 |# F' r
平台相关代码分析
) h5 ~3 T6 B7 r- I; Z# lARM平台介绍
" E6 M$ m" ?+ @. M8 ~平台移植的关键技术
7 n1 \+ K3 r7 S+ t9 F5 M& n移植Linux内核到 ARM平台 了解移植的概念 0 p* I2 b, C; B: o" I* y, C+ K( R
能够移植Linux内核移植Linux2.6内核到 ARM9开发板! I  s4 x4 |& @; m# B/ T1 `2 |) D
5、嵌入式 Linux 下串口通信
$ t5 F$ g, H1 X8 Z5 U串行I/O的基本概念
* M: C# H& ^: P" h3 T0 b7 G嵌入式Linux应用软件开发流程
% G  s' {/ i/ W6 `9 a% j: ?Linux系统的文件和设备 & }+ j8 {1 K3 P& h3 H! X+ h
与文件相关的系统调用
  N, W, S2 A5 ~7 i: Q; \! _  L配置超级终端和MiniCOM 能够熟悉进行串口通信
. ^: I8 v3 H* F. X熟悉文件I/O 编写串口通信程序 5 _7 k  }, k* ?. X1 T8 q
编写多串口通信程序" A, B6 Q* c" i5 I" X
6、嵌入式系统中多进程程序设计
" n1 r5 |+ `. E& ?Linux系统进程概述
1 R! `8 K& [5 L# H# M5 `  E嵌入式系统的进程特点
6 H* X5 z- U0 y4 i; r4 g- s进程操作
/ |8 P$ h% l: V% q" g守护进程
- ?/ d' B/ ?! P& Z6 h相关的系统调用了解Linux系统中进程的概念 : p6 h" J4 \+ f2 A# \. {+ Q  z& _
能够编写多进程程序编写多进程程序
9 s. P9 m& X0 D+ r编写一个守护进程程序 , J' u: A+ H$ R+ l
sleep系统调用任务管理、同步与通信 Linux任务概述. x% s: g6 j* l; `& T
任务调度
/ X2 K, s" M. P0 B% N管道
0 D" A' ?( Z% n8 a9 V& b- M信号 ( M1 G7 s. D! d# @5 A
共享内存 0 l+ c2 T+ x( I9 i! a. ~, I! Y; t
任务管理 API 了解Linux系统任务管理机制 + D) m* I* E) {- H
熟悉进程间通信的几种方式
9 ^8 a% Z3 s# G' i) E熟悉嵌入式Linux中的任务间同步与通信/ I. `, y4 o+ x9 z- _
编写一个简单的管道程序实现文件传输
; z: _: r- w8 U2 R编写一个使用共享内存的程序  b9 J& z& h7 a4 [& w
7、嵌入式系统中多线程程序设计5 I; C9 o: _7 w9 o; q( k! O8 H0 r8 z
线程的基础知识
" S& E3 l/ D3 e4 S2 a; G# g2 G4 X, E! B5 A多线程编程方法 " e* k1 ?1 n! o, o! k( r7 T
线程应用中的同步问题了解线程的概念
; T3 B) d3 v' P, n! k) Z, Y# U. p能够编写简单的多线程程序编写一个多线程程序
2 k* m* K2 G9 ]; S5 _+ i9 [" o6 O8、嵌入式 Linux 网络编程
9 M* x2 I6 w2 Y& ^$ E4 \网络基础知识 0 R+ a3 ^+ D, V1 A* ?
嵌入式Linux中TCP/IP网络结构
6 g1 k3 G' X1 F) V1 _) N: Psocket 编程 + Z/ w( j; |4 l; Q& x
常用 API函数
# X7 c' C" }& s; K! @4 J  K分析Ping命令的实现
0 j" a% O" z( \) V基本UDP套接口编程
8 p8 x- m* V: P$ u许可证管理
8 a6 F1 |% Z4 P* T7 y' CPPP协议
( [+ z" a4 x5 x1 f" q3 v( FGPRS 了解嵌入式Linux网络体系结构   i! w+ |: a& ?% ]
能够进行嵌入式Linux环境下的socket 编程
2 {: x# W0 `( L9 c熟悉UDP协议、PPP协议 ' [2 R3 \. t  t2 N8 O
熟悉GPRS 使用socket 编写代理服务器
. A2 z' [/ E" M/ O' {$ H使用socket 编写路由器 " H2 O. Y) O: ]  o0 D
编写许可证服务器 ' G9 q$ ]& F: Z* }, j6 n( [! E) L3 u
指出TCP和UDP的优缺点
" j& ?; o, l6 Q+ v, H0 M0 B编写一个web服务器
* ]' J! h% Y9 d编写一个运行在 ARM平台的网络播放器
6 s" t( a: R7 p" `! s3 Q  K  F9、GUI 程序开发' b  {7 j' T7 q$ B
GUI基础 0 Q/ [8 }7 J( u, Q+ ~. N6 P
嵌入系统GUI类型 - L: ?2 j% p7 G, n9 P; k' K
编译QT
# `: o) C+ Q8 ]2 ~5 z1 S进行QT开发熟悉嵌入式系统常用的GUI
  j& q5 b5 t& m  y+ u" g0 [! l能够进行QT编程使用QT编写“Hello,World”程序 / n# S, e* F# ^4 k9 ?1 l& W. G
调试一个加入信号/槽的实例
7 w  Z+ v" ?, O通过重载QWidget 类方法处理事件7 i  }# e; A! E
10、Linux 字符设备驱动程序
9 i+ n: J  Y" F  l7 y( N设备驱动程序基础知识 0 n+ f/ a8 w1 S" O1 ?# D' }
Linux系统的模块
  s8 {2 }) b9 U& e4 B/ s  X字符设备驱动分析
# J+ a. T; s- D/ _  Tfs_operation结构
* Y- B4 L$ u( T$ `, h( H2 S加载驱动程序了解设备驱动程序的概念 $ X$ ?8 }4 f( d9 [# f
了解Linux字符设备驱动程序结构
/ \! v: W3 b3 b! b能够编写字符设备驱动程序编写Skull驱动 " Q2 d1 H; ^0 j: T7 A3 v
编写键盘驱动
# ^4 C6 y( {6 z; f编写I/O驱动 + I1 }5 B1 E6 c9 n# E
分析一个看门狗驱动程序 4 n" S: r' D* g/ B' {$ s
对比Linux2.6内核与2.4内核中字符设备驱动的不同5 B3 H4 ?. F. Z$ p  _2 ~* n
Linux 块设备驱动程序块设备驱动程序工作原理
' }( W  w8 T9 t' D: ?4 c典型的块设备驱动程序分析 6 \- W0 F! n! o) e
块设备的读写请求队列了解Linux块设备驱动程序结构 + e9 T  H7 B$ R1 `
能够编写简单的块设备驱动程序比较字符设备与块设备的异同 0 b& k9 D7 D' N# W  l' ^$ I2 b7 ?2 U
编写MMC卡驱动程序 5 V+ ^7 R' F: s, [/ v
分析一个文件系统
3 V9 t( U0 d, `对比Linux2.6内核与2.4内核中块设备驱动的不同
$ o; [+ H. Q! O. x11、文件系统
2 Z. H3 w4 f6 }! s8 U. z$ o虚拟文件系统 # Z7 B% Q9 r8 \1 z6 u
文件系统的建立 6 z/ r% B# t! S& z3 D" i# l
ramfs内存文件系统
" ]4 P3 N# V  Z( _proc文件系统 0 Y' e: E; Y7 _( U
devfs 文件系统
1 C3 C. W. z* e$ M+ ^  {/ vMTD技术简介
9 M! E- E/ e" h/ RMTD块设备初始化
9 s* ^: o  S; [# o, ?MTD块设备的读写操作了解Linux系统的文件系统
1 O. ^9 d& R1 \- H7 D了解嵌入式Linux的文件系统 - t7 e; J$ _& W* Z- x
了解MTD技术
, g; w/ F) p# V+ U能够编写简单的文件系统为 ARM9开发板添加 MTD支持
3 K0 `# o& `6 L7 a/ P移植JFFS2文件系统 ; Z( |2 {' I. r1 x+ j
通过proc文件系统修改操作系统参数
5 h. \, w$ S! C/ S) V, P5 g- X分析romfs 文件系统源代码
4 W/ g3 }) O8 s" V( @创建一个cramfs 文件系统

该用户从未签到

2#
发表于 2021-5-6 13:20 | 只看该作者
ARM初学者学习ARM的步骤

该用户从未签到

3#
发表于 2021-5-6 15:28 | 只看该作者
虚拟文件系统,文件系统的建立
; V/ e7 _5 y5 Z$ x0 P

该用户从未签到

4#
发表于 2021-5-6 18:28 | 只看该作者
掌握好基础知识 " _& N  n8 r# S8 q7 P
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 13:11 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表