idata 单片机 新唐_新唐单片机代码评审总结
昨晚上,我们一个同事组织了一个小会议,大家一起讨论了一个项目的单片机代码,这个单片机用的是新唐单片机,期间大家也讨论了一些问题,总结一下,希望对写单片机的同学们有帮助。
我这个同事写的代码非常优秀,具体代码怎么写,就不能秀出来了。
单片机的一些存储空间data ---> 可寻址片内ram
bdata ---> 可位寻址的片内ram
idata ---> 可寻址片内ram,允许访问全部内部ram
pdata ---> 分页寻址片外ram (MOVX @R0) (256 BYTE/页)
xdata ---> 可寻址片外ram (64k 地址范围FFFFH)
code ---> 程序存储区 (64k 地址范围),对应 MOVC @DPTR
Program Size: data=12.0 xdata=120 code=3349
— —const 的使用
我们一般定义一个全局变量,这个变量会占用RAM的空间大小,如果我们把这个变量定义为const,就可以把这个变量空间从RAM定义到code空间,以此来节省内存空间大小。
我们实测后发现,const变量不仅占用RAM空间,也会增大code的大小,大家在使用的时候可以实测试试。
没有变到code空间的原因大概是ROM没有运行程序的能力
经常听到程序代码可在NOR Flash上运行,而不能在NAND Flash上运行的说法,关于这个说法容易给人造成误解,因为CPU执行代码分为取指、译码、执行三个步骤,所以真正运行代码的还是CPU,对于NOR Flash可以直接运行代码的说法,指的是CPU可以直接通过地址总线从NOR Flash上完成取指的操作。
— —尽量使用全局变量
函数的局部变量对占用栈空间,如果局部变量很多的话,以后出现问题都不好排查,使用全局变量可以使用code空间,确保栈空间足够让程序运行,确保不要在运行的时候出现栈空间不够。
——尽量开启看门狗
对于手机来说,看门狗不是很重要,但是对于单片机来说,看门狗非常重要,看门狗可以保证单片机死机后可以恢复运行。
——声明为char类型,实际上可能是unsigned char
这个是编译器的锅,大家如果发现程序不按自己想法运行,可以留意下这个。
idata 单片机 新唐_新唐单片机代码评审总结相关推荐
- ht1621b和单片机电平匹配_有备无患,单片机面试问题集
点击箭头处 "蓝色字" ,关注我们哦!! 这十八个经典问答,讲透了RS485接口! 模拟技术之传感器电路实例讲解 三种单片机对比:51系列.PIC和AVR 几个单片机汇编语言教学例 ...
- stcc52单片机时钟电路_有备无患,单片机面试问题集
小单在网上搜集了一些关于单片机面试的问题,希望能帮助到需要找工作的同学! 单片机的最小系统?内部的主要结构? 答:最小系统:电源.晶振(为系统提供基本的时钟信号).复位电路;内部结构:ROM/RAM. ...
- 单片机python教程_如何入门单片机/嵌入式
之前回答的一个单片机入门的问题,感觉脉络还算完整,遂把它单独整理出来. 大一学的单片机,本科玩了几年嵌入式,做过智能家居,智能小车,示波器,开关电源等等,后来工作(本人芯片行业)以后就没搞了,但是这段 ...
- hc05与单片机连接图_小白学单片机:单片机烧写器及烧写软件的使用
一.为什么叫烧写 早期一般是将调试好的单片机程序写入到ROM.EPROM中,这种操作就像刻制光盘一样,实在高电压方式下写入,PROM是一次性写入,存储内部发生变化,有些线路或元件就被烧断,不可再恢复, ...
- 新唐单片机选型手册_新唐单片机选型手册_新唐8051标准系列单片机选型指南
新唐8051标准系列单片机选型指南 新唐单片机 8位单片机 作者: 来源: 发布时间:2019-06-18 22:15:07 浏览:351 新唐科技标准8051产品系列,其管脚兼容于传统12T 8 ...
- 新唐单片机选型手册_新唐8051标准系列单片机选型指南
新唐8051标准系列单片机选型指南 新唐单片机 8位单片机 作者: 来源: 发布时间:2019-06-18 22:15:07 浏览:351 新唐科技标准8051产品系列,其管脚兼容于传统12T 8 ...
- 合泰单片机触摸例程_合泰触摸单片机新建工程步骤(自编详细版)
合泰触摸系列单片机新建工程步骤(自编详细版) 第一步: 新建一个工程文件夹,这里以 BS83B12A-3 单片机为实例,将文件夹 命名为 BS83B12A-3_Exam( 根据工程项目自定义,无要求 ...
- 英飞凌单片机知乎_如何评价单片机大神郭天祥?
没成想自己的一个回答获得300个赞,也是知乎灌水多年的第一次了..之前的回答里略有一点点偏激,是为了回应一个我看到的不爽的回答.下面比较严谨的表达一下自己的想法-- 如果把单片机开发比做一个大学专业, ...
- javafx 打开新窗口_新的JMetro JavaFX 11兼容版本
javafx 打开新窗口 你好,我们又见面了! 这次,新版本与JavaFX 11兼容. 继续阅读以获取详细信息. JMetro 8.5.7和11.5.7版本 JMetro代码已分为2个分支. mast ...
最新文章
- Nginx笔记系列(1)——Nignx的安装部署
- 在aspx页面向iframe中post参数
- python draw.text颜色_python wand:用draw.text()改变文本样式
- Linux网卡eth0变成eth1修改方法
- 前端项目里常见的十种报错及其解决办法
- SetProcessWorkingSetSize减少内存占用
- s5pv210——AD转换
- 【数据结构上机练习】考试题目 3
- python-Python教程
- 语音识别如何操作?这种语音转文字方法也太好用了吧,简单高效
- 【JavaScript学习笔记】计算机编程基础
- 阈值分割:最大类间方差法
- FAQ详解“Meltdown和Spectre”问题,接踵而来的“Skyfall和Solace”是否仅是骗局?
- 共享编辑文档系统dzzoffice安装
- linux wifi开机自动连接 wifi连接
- 训练营day01 数组 | 704-二分查找、27-移除元素
- 华为 H1B 2014办理详情
- Resample方法
- 串口屏-迪文10寸T5串口屏简单上手
- 谁是Windows 10中国市场的赢家?
热门文章
- autojs微博_autojs使用intent打开新浪微博的用户任务中心scheme的详细过程
- 2014年双11抢货宝典-双11促销商品价格对比清单---妈妈再也不用担心我成为剁手党啦
- 宫廷计获取服务器配置信息出错,宫廷计手游宫廷会试全题目答案汇总 宫廷会试题及答案...
- 从零开始写一个框架的详细步骤
- 电源完整性系统设计总结
- [HDU 1814] Peaceful Commission
- Swin Transformer代码讲解
- 2010年10月20日
- 高校校园网代理Motion pro持续重连解决办法
- 美术绘画之原画场景深入刻画-张聪-专题视频课程