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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

; {" \: ^/ G* H5 `, k1 v  Z2 f摘要:无线单片机C语言和汇编语言各有所长。无线单片机内存容量极小,而且不同型无线单
. a( k4 V2 E* ]$ i1 \片机收/发硬件结构各不相同,因此C语言时常表现出很多不足之处(如C语言良好的可移植性在
; T7 s$ K: g8 e2 g9 v9 O4 x不同无线单片机间并不存在)。首先对无线单片机的汇编语言和C语言进行比较,说明汇编语言具
# ~) A4 E0 Q2 I有相当大的优势。接着提出改进汇编语言可交叠式模块编程方法。最后考虑至今软件断点都是极慢; _2 E! Z& a+ n2 q% ^) l; c9 h0 [
速的(慢100倍);现有的硬件断点方法需要很贵的硬件来支持,成本很高,为此提出低成本和高. b& [6 o) J# R
速的全速软件断点方法。采用cpld芯片实现的nRF24E1外围电路,完成键盘扫描,显示,收发控! V* Y- @+ X/ a/ T: W& ~7 H/ p" J
制和信息存储。多次并以nRF24E1收发的实验和调试验证了上述方法的正确性。
8 ^( Q4 Q& ?3 T! e0 Z关键词:汇编语言; C语言;无线单片机;全速软件断点: n, Y9 ~: z$ ^, q: c
0引言
1 ]4 h  `+ p( r7 h目前有线单片机编程中越来越趋向使用C语5 B% k1 f  }, v0 u
言[1-2]而无线单片机开发也用C语言。实际6 Y/ N6 t  e9 }6 o' F$ t: w
上C语言有一定的适用范围,很多问题一定要结合9 J8 B: ?) n1 K) z
实践作比较,无线单片机内存容量极小(用于无线传7 p# Y" x% `' q% r. [
感器网络节点,希望体积小,尽量利用片内存储器完, F7 \( C! H( ]. V0 R& a
成更多的功能) ,C语言对小内存容量和硬件结构不+ c  _& a" @  O. `8 u, t
同常表现出很多不足之处。汇编语言编程比C语% L! k3 o, ?0 b6 R

  E* c! r+ l- k3 H6 S4 |0 T言具有占用存储空间少、运行速度快及代码质量高
8 g& E; |. c* r+ Z8 i' g等优点;对硬件进行实时控制或对运行时间和效率! k4 U7 {$ U- W# L4 _% Q9 H
要求较高的系统软件或应用软件,通常都是用汇编
" _. F3 @/ U; q! B' d0 ~语言编写的1-2.81。实际C语言移植良好的优点在
6 W. R$ J/ D/ ?7 y不同无线单片机间并不成立(如CC1010和nRF24E1
! y$ n( G: @( j1 X' d& @
3 W7 h  J* ?. b的接收/发射硬件结构不同,接收/发射C语言程序& o4 q/ V2 o$ \6 S: T1 {+ ?
差别很大,并没有可移植性):,] ,对内存容量充分的# a3 F7 I" i) d" n/ Q: q
大型程序尽量少用汇编,但相比之,用于无线传感器
. I7 z9 O1 p. W7 t网络节点,内存容量极小,硬件结构不同,对此汇编
6 L- Y7 N; K8 Q0 |; c6 [5 E' l3 j语言却具有很大的优势。实际上在无线单片机C6 n# S) ^4 T# ?, A; e/ m
语言程序调试中都能看到相应的汇编语言程序,立4 b* |0 R1 p7 K
即看出C语言程序极不精炼。另外,在单片机调试
# n7 R% ^2 i+ m3 Y4 i/ O中至今软件断点都是非全速的(慢100倍)9- ;现4 {$ j! V, _  O4 _; u3 B9 v4 p
有的硬件断点方法需要很贵的硬件来支持,成本很
  T8 A) X8 \5 X  c% e3 x高。为克服硬件断点成本很高和软件断点速度很慢5 Q7 v' z1 b3 h1 n' r6 D
的缺点,本文提出改进的汇编语言可交叠式模块编( x& e: F" f5 ^9 F+ l( u
程方法,并提出低成本和高速的全速软件断点方法,7 C# e/ K7 a( ~
使无线单片机内存空间利用率高。* `* J9 V; ^1 K3 x" p
1用于无线单片机nRF24E1的汇编
3 p9 @1 E6 @6 V1 C语言和C语言的比较. k3 f4 u6 l) W4 e# I6 \2 y* C+ y3 z
在无线单片机nRF24E1中C语言和汇编语言
) F# G4 Q+ F3 [; I比较如下:) E: G0 ~" ~8 M# r, L% A- D; t
(1)nRF24E1的程序存储器和数据存储器加在
2 ]! r: Y6 q' I一起的总和仅仅为4k字节,而C语言编码效率比汇4 E: \$ N8 K) y5 g# h
编语言低,需要的内存容量较大。普通单片机程序; H* u* c0 i- X1 q7 r; P
存储器可到64k字节,数据存储器也可到64k字节,
5 v& }6 x+ Y7 z8 G# C: Z总和可到128k字节,所以普通单片机还可用C语) q' v6 O5 i! E( m; A
言,而对总和为4k字节的无线单片机nRF24EI节省; W: a6 H" L% s- c# y5 k/ l" o
内存空间十分重要,故汇编语言比C语言具备一定
6 }, w& L4 v# \+ p8 S( m4 L优势,为使无线单片机能执行较多的功能,建议采用0 x$ N0 E7 Z) K) m9 @2 v
汇编语言。例如:现有用于nRF24E1读和写
/ `$ c+ T+ R  Q# A& |' u$ `25AA320(串行EEPROM)的C语言程序约占914字
, J" `. x  I. b. [/ e9 w8 j- g节,占用内存空间较大。本文改用汇编语言编程,只+ }+ L' R7 o4 u1 g* F  }& |
约占250字节。又如延迟程序:用C语言需27字
0 |. C( f" R1 z节,用汇编语言只需13字节。由此可见,用汇编语
. p5 c5 ~* N$ f" T* _言编程,在4k字节空间可实现更多的功能。4 g( z4 I7 v3 q5 B
(2)无线单片机硬件结构和特殊功能模块差别
% |9 q; }$ @! ]- I6 U7 q* V' W很大,本来C语言对硬件的控制和运行速度就远远
+ A# R8 d0 k' ]5 z( B0 P抵不上汇编语言,现在用C语言设计,必须考虑硬
5 I. z' V2 [8 A3 V2 h+ O9 u件特性,不如汇编语言直接访问硬件方便。C语言/ V. i+ l+ |3 n7 U& Q9 X
良好可移植性的优点在不同无线单片机间并不存
3 ~5 e+ H( i) {1 x$ \在。C语言系统提供的专门的函数库中大部分无线/ w4 w1 f8 V$ `% b( r6 ]( |3 {
单片机不需用,修改和调试很烦,往往存在-定盲目
& B+ k$ a+ b) e+ k# ~性的套用。无线单片机汇编语言每一步执行的动作% n" q3 x* s7 D% D8 x) n+ @7 h9 z
都很清楚,自主修编改程序汇编语言比较容易。不* e+ r1 s- d( L* e0 w; U
必套用,修改调试方便。
8 l% d# N& E2 s+ Q2 ~5 e$ v8 P; o0 u/ N  `2 `* v  u  r

* H! O' Z# e& J7 l8 @
8 g0 }5 u+ u- @; ?6 G
" ]( h4 S/ ~; g& M( m附件下载:
游客,如果您要查看本帖隐藏内容请回复
7 _% S2 S) {3 H2 b

/ r6 b% `; a0 [5 z& L

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-3 00:34 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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