昨晚上,我们一个同事组织了一个小会议,大家一起讨论了一个项目的单片机代码,这个单片机用的是新唐单片机,期间大家也讨论了一些问题,总结一下,希望对写单片机的同学们有帮助。

我这个同事写的代码非常优秀,具体代码怎么写,就不能秀出来了。

单片机的一些存储空间

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

这个是编译器的锅,大家如果发现程序不按自己想法运行,可以留意下这个。

推荐阅读:专辑|Linux文章汇总专辑|程序人生专辑|C语言我的知识小密圈

单片机单口不可用或被占用_新唐单片机代码评审总结相关推荐

  1. 单片机单口不可用或被占用_昆明工业控制单片机应用开发价格

    昆明工业控制单片机应用开发价格 jwsndfc 昆明工业控制单片机应用开发价格结构图组成推挽结构,从理论上讲是可以通过调配管子的参数轻松实现输出大电流,带载能力,两个管子根据通断状态有四种不同的组合, ...

  2. 单片机单口不可用或被占用_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言. 这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢 ...

  3. 单片机单口不可用或被占用_KQD:快驱动单片机

    公测阶段测试进度: 状态代码含义 X:规划中,尚未进入开发阶段. A:原型验证阶段,代表本驱动模块完成原型验证,仅表示此算法或方案可行. B:主要功能完成阶段,代表本驱动模块主要功能已经完成并可以跑通 ...

  4. idata 单片机 新唐_新唐单片机代码评审总结

    昨晚上,我们一个同事组织了一个小会议,大家一起讨论了一个项目的单片机代码,这个单片机用的是新唐单片机,期间大家也讨论了一些问题,总结一下,希望对写单片机的同学们有帮助. 我这个同事写的代码非常优秀,具 ...

  5. 新唐单片机选型手册_新唐单片机选型手册_新唐8051标准系列单片机选型指南

    新唐8051标准系列单片机选型指南 新唐单片机 8位单片机 作者: 来源: 发布时间:2019-06-18 22:15:07   浏览:351 新唐科技标准8051产品系列,其管脚兼容于传统12T 8 ...

  6. 新塘单片机烧写器_新唐单片机软件加密|新唐单片机软件(NuConsole) v2.04.6725官方版 附安装教程_星星软件园...

    NuConsole是一款实用的新唐单片机软件,该软件可以通过SWD接口操作,为用户提供不中断目标芯片和主机的信息传输机制,是机械和电气领域不可或缺的软件.软件简洁实用.操作简单.极易使用,需要的朋友赶 ...

  7. m031开发 新唐_【M031LC2AE价格_新唐单片机M031LC2AE,M031LD2AE,32/64/128kFLASH,48pin_全速装置图片】-TG工业网...

    新唐单片机M031LC2AE,M031LD2AE,32/64/128k FLASH,48pin 主要特色: • 运作特性 - 工作电压: 1.8V ~ 3.6V - 工作温度: -40°C ~ +10 ...

  8. 新唐单片机 ICP 史上最全教程

    新唐单片机 ICP 史上最全教程 新唐单片机 ICP烧录教程 目录 新唐单片机 ICP 史上最全教程 1.ICP软件安装 2.连接设备 3.设备供电 4.开启软件 5.欢迎界面 6.补充事项 7.建立 ...

  9. 新唐单片机选型手册_新唐8051标准系列单片机选型指南

    新唐8051标准系列单片机选型指南 新唐单片机 8位单片机 作者: 来源: 发布时间:2019-06-18 22:15:07   浏览:351 新唐科技标准8051产品系列,其管脚兼容于传统12T 8 ...

最新文章

  1. C++ Stack Queue priority_queue
  2. SQL积累-SQL取得字符串中的文件名
  3. 大数据培训:Zookeeper集群管理与选举
  4. python识别图片指定位置文字_python批量识别图片指定区域文字内容
  5. pythonxml库_对python 生成拼接xml报文的示例详解
  6. Java小项目:坦克大战(二)
  7. 基于人脸识别的课堂签到管理系统(四)---摄像头上传实时数据,百度AI读取并返回信息以及多线程操作
  8. Python程序中的进程操作-进程同步(multiprocess.Lock)
  9. 41. PHP MySQL 连接数据库
  10. 计算机专业教育经历怎么写,个人简历教育经历怎么写?
  11. python图库图片_python爬取优美图库海量图片,附加代码,一键爬取
  12. 【产品】 产品设计:ID设计和MD设计详解
  13. html的富文本有什么用,html中怎样使用富文本
  14. 分析力学复习笔记(更新中)
  15. java 图形处理_课内资源 - 基于Java实现的几何图形处理系统
  16. HDFS强制退出安全模式
  17. 3DMAX使用心得(2007-9-9)
  18. VS 2017 OCX
  19. 软件产品与项目开发的区别
  20. 47 On Interpersonal Relationship 关于人际关系

热门文章

  1. Matlab Tricks(二十五) —— 二维图像的 shuffle
  2. 极简代码(八)—— binary activation function
  3. 人,作为社会的基础单元
  4. Tricks(五)—— Python 返回所有符合条件的下标
  5. opencv 文字识别_Python+opencv+EAST做自然场景文本检测!
  6. python常问问题_Python新手在作用域方面经常容易碰到的问题
  7. python官网的sdk下载详细步骤-Python SDK(beta)
  8. python免费全套教程-python入门免费教程看这些就够了
  9. python和java学哪个好-Python和Java学哪个更好?
  10. python入门先学什么-Python入门学习 DAY 01 计算机基础