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

[毕业设计] 无线单片机汇编与C语言比较和全速软件断点

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

# u1 `5 m  }/ q) h摘要:无线单片机C语言和汇编语言各有所长。无线单片机内存容量极小,而且不同型无线单. q$ M7 U, Y) a8 d
片机收/发硬件结构各不相同,因此C语言时常表现出很多不足之处(如C语言良好的可移植性在
! `0 D' K1 A. O' ~不同无线单片机间并不存在)。首先对无线单片机的汇编语言和C语言进行比较,说明汇编语言具
0 |. ~7 j' b9 x" a有相当大的优势。接着提出改进汇编语言可交叠式模块编程方法。最后考虑至今软件断点都是极慢! K: M7 g2 V' N# f! h
速的(慢100倍);现有的硬件断点方法需要很贵的硬件来支持,成本很高,为此提出低成本和高
2 K) R9 O% m) G速的全速软件断点方法。采用cpld芯片实现的nRF24E1外围电路,完成键盘扫描,显示,收发控9 P# K4 k- `$ K. q
制和信息存储。多次并以nRF24E1收发的实验和调试验证了上述方法的正确性。6 J# g* F1 ]1 q6 T) A) Q0 W
关键词:汇编语言; C语言;无线单片机;全速软件断点4 r- n2 `8 C6 l$ D) x
0引言" s& Z; V2 ]" y% `: @
目前有线单片机编程中越来越趋向使用C语5 \4 h' f" N) w$ T. e
言[1-2]而无线单片机开发也用C语言。实际
7 O- p# ?4 }  z! C9 L& h7 t上C语言有一定的适用范围,很多问题一定要结合9 J8 A1 Z' U& n/ J( x8 k+ h
实践作比较,无线单片机内存容量极小(用于无线传$ H" ?, I9 A! f+ q1 e, c8 f- h/ M, B
感器网络节点,希望体积小,尽量利用片内存储器完* e3 T' W, K' H. q8 P  o+ n/ X  S
成更多的功能) ,C语言对小内存容量和硬件结构不. T4 A' G. v) W/ K/ t; P
同常表现出很多不足之处。汇编语言编程比C语" S- ~5 Y! E2 i- o- X

  H# N8 L& u% K言具有占用存储空间少、运行速度快及代码质量高& s" E6 C: h  N3 A& g! ]
等优点;对硬件进行实时控制或对运行时间和效率
# g9 [9 c7 g$ j- ~要求较高的系统软件或应用软件,通常都是用汇编! h. r: \/ U9 i" G, a) e
语言编写的1-2.81。实际C语言移植良好的优点在- K1 a9 A/ s8 x2 t
不同无线单片机间并不成立(如CC1010和nRF24E1
8 K# a) J& {: D7 e/ E, Y8 x9 w3 I2 h5 C
的接收/发射硬件结构不同,接收/发射C语言程序
, v3 }# V8 T! p* W  R3 ^! \差别很大,并没有可移植性):,] ,对内存容量充分的& |1 @& |* A& X* ~
大型程序尽量少用汇编,但相比之,用于无线传感器
* K+ l7 v0 ~& Z+ I! [" i网络节点,内存容量极小,硬件结构不同,对此汇编
. A7 N* o- p& K; B语言却具有很大的优势。实际上在无线单片机C6 m) |) ?' ^  g2 \6 o' e3 Y$ j
语言程序调试中都能看到相应的汇编语言程序,立0 q* z/ b+ O. _8 Y8 z4 R9 j, v0 I
即看出C语言程序极不精炼。另外,在单片机调试
( E5 R; u9 l; ^/ ~  o! R中至今软件断点都是非全速的(慢100倍)9- ;现
) X7 v: c. g2 q' M, Z有的硬件断点方法需要很贵的硬件来支持,成本很' B. W+ Z) u8 h  h
高。为克服硬件断点成本很高和软件断点速度很慢
$ j6 g* G- |3 n/ I的缺点,本文提出改进的汇编语言可交叠式模块编1 @: M" N5 y4 o  `
程方法,并提出低成本和高速的全速软件断点方法,
0 K1 R2 h/ N# i8 r/ L% V* s使无线单片机内存空间利用率高。
5 o) q& K1 x" f. a2 @5 g2 c1用于无线单片机nRF24E1的汇编
* H5 v( w) F/ u+ u3 I% o" @语言和C语言的比较) i! N/ V7 t3 N) @
在无线单片机nRF24E1中C语言和汇编语言
9 s3 Y; W0 `& i7 ]7 t+ d/ Z比较如下:
- w  m# T2 }. j4 d. V(1)nRF24E1的程序存储器和数据存储器加在9 w" A7 n) j2 T5 U! l
一起的总和仅仅为4k字节,而C语言编码效率比汇
* r& ]' o5 C2 d+ t- ~编语言低,需要的内存容量较大。普通单片机程序
3 v  l6 E6 F: A; @- Y1 E存储器可到64k字节,数据存储器也可到64k字节,. R( |: J, ?& |
总和可到128k字节,所以普通单片机还可用C语
$ L3 _& N3 _# C言,而对总和为4k字节的无线单片机nRF24EI节省+ h0 u8 ~' z! \& t6 J, X, K
内存空间十分重要,故汇编语言比C语言具备一定: `5 N& I9 J* X5 }6 q; ]
优势,为使无线单片机能执行较多的功能,建议采用+ H1 m* @' L# M% @
汇编语言。例如:现有用于nRF24E1读和写9 |6 Z6 P' p& f2 I- Q. v4 y
25AA320(串行EEPROM)的C语言程序约占914字& m6 g+ G. g' D; b. u( q3 T
节,占用内存空间较大。本文改用汇编语言编程,只
9 v0 a2 z$ a3 s5 k4 q约占250字节。又如延迟程序:用C语言需27字9 I; D9 X5 {% e5 R/ e
节,用汇编语言只需13字节。由此可见,用汇编语
1 W7 v1 Q) ^1 W. F1 R: d. {& W: ~言编程,在4k字节空间可实现更多的功能。
: j* ~1 B5 f3 W, n) R(2)无线单片机硬件结构和特殊功能模块差别$ F. e5 I; h( O- w3 {6 Y
很大,本来C语言对硬件的控制和运行速度就远远
4 F: n* `% l( K0 p- Y  ]7 V抵不上汇编语言,现在用C语言设计,必须考虑硬
) b& x3 _3 Q$ T5 w* V  M件特性,不如汇编语言直接访问硬件方便。C语言
& T* y+ A. r" m2 N; l良好可移植性的优点在不同无线单片机间并不存
1 b5 M8 i  l# X& D* ?" }. U# F, ?在。C语言系统提供的专门的函数库中大部分无线4 Q# k- m) P, _4 H! O" s( g
单片机不需用,修改和调试很烦,往往存在-定盲目
; m+ I/ P' N3 d- L, l性的套用。无线单片机汇编语言每一步执行的动作
/ r' m& O" e% j% p& C0 i/ y! Z都很清楚,自主修编改程序汇编语言比较容易。不: x& g- c: T; H0 i
必套用,修改调试方便。
( S$ h$ W0 h+ H/ X' @! Y
0 t, {* p. G1 [' n  B6 P8 J( m4 ?

$ v1 t" \4 ~- E5 m7 g* x9 u( B) S+ j' L5 d- k+ G
附件下载:
游客,如果您要查看本帖隐藏内容请回复
$ g) F* i1 j5 w" m; I4 z& X5 m0 x

& D/ O8 ?. L" n/ |4 ?4 R$ f

该用户从未签到

2#
发表于 2020-5-6 13:44 | 只看该作者
对内存容量充分的大型程序尽量少用汇编
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-3 20:29 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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