历史上的今天
返回首页

历史上的今天

今天是:2025年05月06日(星期二)

正在发生

2021年05月06日 | 51单片机开发原则知识介绍

2021-05-06 来源:eefocus

1.尽可能让变量使用占用代码空间最小的变量类型。例如无符号字符型和位操作(8051作为一款8位处理器提供了位操作支持,而且大多数操作指令都是8位或者位操作的通常用小的数据类型去编写代码其效率更高)


2.尽可能使用无符号类型数据(8051单片机不直接支持有符号的数据类型,有符号的操作需要额外的指令来支持,但是无符号的数据类型是直接就能被8051支持的)


3.尽可能选择小的存储模式即small(绝大多数的应用采用small存储模式都能满足,也可以选择large存储模式,将一些数组和结构体存入xdata或者pdata存储空间的话选择极大存储模式,注意的是keil c51实时库使用的基本指针可以工作在任何存储模式)


4.当应用其他存储模式的时候尽可能将变量存储在data区域内(将变量存储在data空间里,这部分空间单片机可以直接访问,据有最高的执行效率,通常这个区域存储的是最有效率的代码)本地图片,请重新上传


5.要知道如何在你的设备上使用PDATA存储模式(pdata提供的256字节的空间,使用MOVX @Ri指令访问8位地址,pdata存储空间的使用不同于8051单片机内部的设备,需要设置页寄存器。Xdata 存储类型是通用的能达到的最大的存储空间64kb)


6.尽可能使用内存类型的指针(默认的,keil c51编译器使用通用指针可以访问任何类型的内存空间,内存型的指针只能访问固定的存储空间,但是这种方式能够产生更快更小的程序代码)


7.减少使用重入函数(8051系列缺乏对堆栈变量的支持,重入函数的实现通过keil c51 编译器使用一个编译时间的堆栈对内存范围内的数据内容的覆盖实现的,重入函数在8051单片机上模拟出堆栈的结构。由于在嵌入式应用很少会用到重入函数代码,但是你在设计的过程中应尽可能的少用这种重入属性)


8.使用LX51 Linker/Locate 和Linker code packing来减少程序的体积。(LX51 Linker/Locate分析并且优化你的整个程序。代码将会在内存中重新排列,最大限度的使用2字节的AJMP和ACALL指令来代替3字节的LJMP和LCALL指令。Linker code packing利用通用代码段生成子程序)


9.尽量保持短的中断函数(结构好的的中断函数仅仅是执行数据的获取或者是计时,数据的处理是在主函数或者实时系统的任务函数中完成,这样可以有效的降低涉及保存/存储的中断函数的调用)


10.检查对于时钟周期的需求(代码访问数据需要一定的周期,尤其是在实时系统中使用多个线程或者中断服务程序中需要在主函数中)


推荐阅读

史海拾趣

DIPTRONICS MANUFACTURING INC公司的发展小趣事

随着技术的不断进步,圜达实业不断投入研发,成功推出了一系列具有创新性和竞争力的产品,如旋转开关、滑动开关等。这些产品不仅满足了市场的需求,还为公司赢得了良好的口碑。此外,公司还获得了TS 16949及ISO-14001认证,进一步提升了产品品质和竞争力。

Applied Engineering Products (AEP)公司的发展小趣事

随着国内市场的饱和,AEP公司开始寻求海外市场的拓展。公司通过与国外知名企业建立合作关系,共同研发新产品,成功打开了国际市场的大门。同时,AEP公司还积极参加国际电子展会和技术交流会,与全球同行交流学习,不断提升自身技术水平。在国际合作的过程中,AEP公司的品牌影响力逐渐增强,成为了电子行业中备受瞩目的企业之一。

埃派克森微电子(Apexone)公司的发展小趣事

埃派克森微电子的创立可追溯到2002年,由高勇回国并带领一支团队创立。作为一家初创公司,埃派克森在创立初期就明确了以模拟系统级芯片为突破口的发展战略。通过不断的研发和创新,埃派克森成功开发了多款具有竞争力的芯片产品,逐渐在亚太与国际市场崭露头角。这一阶段,公司的创新精神和坚持不懈的努力为后来的发展奠定了坚实基础。

Gilway Technical Lamp公司的发展小趣事
制冷剂是制冷系统中的重要介质,如果制冷剂泄漏,制冷效果将大打折扣甚至完全失效。
Devar Inc公司的发展小趣事

智能家居是电子行业的一个重要发展方向,Devar Inc公司也积极拓展这一领域。公司推出了一系列智能家居产品,如智能音箱、智能照明、智能安防等。这些产品不仅具备远程控制、语音控制等便捷功能,还通过Devar的AI技术实现了智能学习和智能联动。例如,智能音箱可以根据用户的习惯和喜好,为用户推荐音乐、新闻等内容;智能照明则可以根据环境光线和用户需求自动调节亮度和色温。

Concurrent Logic公司的发展小趣事

随着公司规模的扩大,Concurrent Logic开始寻求国际合作。他们与日本、韩国和欧洲的几家公司签订了技术合作协议,共同开发新一代的并行处理解决方案。这些合作为公司带来了更广阔的市场和更多的资源,推动了技术的进一步创新。

问答坊 | AI 解惑

CCTV系统的综合防雷

1、前端设备的防雷 前端设备有室外和室内安装两种情况,安装在室内的设备一般不会遭受直击雷击,但需考虑防止雷电过电压对设备的侵害,而室外的设备则同时需考虑防止直击雷击。前端设备如摄像头应置于接闪器(避雷针或其它接闪导体)有效保护范围 ...…

查看全部问答>

为聋人设计的一款——波纹扬声器

听音乐是一件非常惬意的事,但是对于听力不佳的人来说,这件在常人眼中轻而易举的事,却是他们梦寐以求的。因此,现在就有人研究一些新的办法来让人感受声音,例如通过看或者触摸。这个波纹扬声器就是通过音乐的震动来刺激聋人的脑波而使之活跃 ...…

查看全部问答>

LTIB介绍和安装(二)

Supports preconfigs which allow developers to store different system configurations (e.g. toolchain selection, kernel selection, package selection etc).Supports profiles this allows just the userspace package s ...…

查看全部问答>

EVC简单问题

这个问题真的很雷人,对很多人来说,这个是非常弱智的问题。但是对我这个应用菜鸟却很难,不知道如何下手。 在网上找到一些信息,可以使用如下函数实现。 MoveWindow(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN)); 我加 ...…

查看全部问答>

新手提问,请各位高手畅所欲言-EVC3.0+ppc2002程序开发问题!

先问一个超级简单的问题,EVC下支持的语言到底是C++还是VC++,在WINCE下开发这种应用程序都涉及到哪些问题,是否涉及到平台的转换及PC和PDA之间的接口问题等,我是一个新手,没有用VC做过大的系统,如果要做这个方向,等需要学习哪些东西,请各位高 ...…

查看全部问答>

感觉ST的推广力度还很不够,像无投苍蝇,没有引导方向

可能与国内这些企业的商业模式有问题!ST一味说我什么时候出什么什么样的芯片,尽是一些虚无漂渺的东西。技术再好有什么用。都是你们自己吹的。我觉得st在中国做推广应该做如下工作。(1)所有资料中文化。(2)降低开发门槛。如推一些简易廉 ...…

查看全部问答>

debug 下载出错,急!

我使用的单片机是msp4301121A。开发工具采用的是简单的仿真器(目标板自己做的)。用 debug调试时,向单片机写入程序时,提示出错如下: “ FATAL ERROR Failed to write memory at 0xF012 Session aboard ...…

查看全部问答>

求教信道机指标 功率上升/下降时间 发射频率拖动

菜鸟求教 信道机指标:功率上升/下降时间,发射频率拖动,发射杂散,其具体含义是什么? 灰常感谢…

查看全部问答>

ise13.1中怎样进行波形的仿真

          如题,最近在学习xilinx的fpga,但是ise这个软件实在是让人纠结,没有了testwave form。该怎样使用testbench进行仿真啊,或者还有个modesilm,纠结了一下午了,求高手啊…

查看全部问答>

LED半导体照明应用中存在的问题

replyreload += \',\' + 1328974;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>