sdcc 51 迁移记录

这是makefile中的核心内容

out.ihx:$(object)
 @echo ------------------连接$^------------------
 sdcc --iram-size 256 --xram-size 1024 -o $@ $^

%.hex:%.ihx
 packihx $^ > $@
 
%.bin:%.hex
 objcopy -I ihex -O binary $^ $@

%.rel:%.c $(hfile)
 @echo ------------------编译$<------------------
 sdcc --iram-size 256 --xram-size 1024 -c $<

sdcc -c xxx.c
用来把.c文件编译成.rel文件,相当于object文件,把所有的.c文件都用这个命令编译成.rel文件
全部编译成.rel文件后,
sdcc -o out.ihx x1.rel x2.rel .....
这样把所有的.rel连接成最后的.ihx文件,
packihx out.ihx>out.hex
把ihx文件转换成.hex文件。
注意这个hex文件可能是格式不太对头,用stc的isp软件写入无法正常工作。需要用
objcopy -I ihex -O binary out.hex out.bin
把.hex转换成.bin格式,这个文件stc读入才是正常的。

sdcc扩展了一些保留字,都是双下划线开头的,比如 __bit,__code,__interrupt这些,注意要调整加上双下划线。
_nop_()没有了,考虑定义一个
#define _nop_() __asm nop __endasm
来替代。

中断服务函数一定要把定义在main()函数所在的.c文件中写一份,否则不能正确调用中断服务函数。

unsigned char a,b;
if(a+b==0xff)

这样的判断居然也出错,看了一下.lst文件里的汇编代码,sdcc把a,b都扩展成了2字节的int来处理,还处理错了,真要命。
要改成
unsigned char a,b,c;
c=a+b;
if(c==0xff)
这样才可以正常处理。

sdcc 51 迁移记录相关推荐

  1. 用 C学习51单片机——记录 4、中断系统 (1)外部中断

    用 C学习51单片机--记录 4.中断系统 用 C 学习51单片机过程与自我拓展--记录(STC89C52芯片) 前言--其实51并不太难,多看 多写代码,多调试,就一定会有所感悟. 所以我在此留下一 ...

  2. linux 系统迁移到固态硬盘,Linux系统迁移记录(从HDD到SSD)

    Linux系统迁移记录(从HDD到SSD) 我把HDD上的Linux迁移到SSD上,重装系统太麻烦了,所以我直接拷贝整个系统,然后重建引导恢复,以下是记录. 两块硬盘 首先把SSD换上去,HDD用硬盘 ...

  3. oracle12c xtts迁移,记录一次XTTS迁移碰到的问题

    最近在做一次迁移,原库 AIX-11203RAC ,目标端linux 11204 RAC,数据量3t左右,期间也是出现了点问题,现在记录一下,以供大家参考: 1 在打开BCT卡住 alter data ...

  4. redmine备份_Redmine 数据迁移记录

    下午将 Redmine 迁移到另一台主机,记录一下 Redmine 数据库数据迁移 先说一下备份还原 mysql 数据库的命令 备份 mysqldump -hhostname -uusername - ...

  5. Mac 系统快速迁移记录(M1 Max)

    开箱大图(有图有真相) 系统迁移(大约4个小时,取决于传输数据大小) 定义: A=新Mac电脑 B=旧Mac电脑 迁移(https://support.apple.com/zh-cn/HT204350 ...

  6. 腾讯免费企业邮箱迁移记录

    本文记录在重新申请腾讯企业邮箱的过程. 背景 很多年前,将域名latelee.org 迁移到了阿里云,当时因政策原因无法实名,但能使用.去年3月,阿里云提示无法续费,紧急将其转到外面某服务,继续使用, ...

  7. 阿里高可用mysql搭建方案_阿里云环境迁移记录 - MYSQL高可用搭建

    MYSQL高可用方案主要分为两大类,一类是前置管理,一类是后置管理. 前置管理的思想是利用各种前置管理工具,动态切换或者分发请求到不同的实例并切换master,如keepalived.MHA.pack ...

  8. Openstack-M版(双节点)热迁移记录

    本次测试采用如下配置 主机名 配置 IP地址 controller 4G4核 192.168.100.10 compute 4G4核 192.168.100.20 1.编辑/etc/sysconfig ...

  9. 路遥工具箱全面迁移至 .NET 6.0 并发布 3.0 版本及迁移记录详解

    随着 .NET 6.0 的发布 NewLife 组件也进行了升级,并在 2022 年 1 月份全面停止了对 .NET Framework 的支持框架依赖升级至 .NET Standard 2.1 . ...

  10. 数据库迁移记录(数据泵方式)

    1.平台:windows迁移至linux(需要停止业务) 2.源库: 导出用户下的对象(源库有两个业务schema) expdp system/xxxx@sid schemas=xxxx dumpfi ...

最新文章

  1. 7_7_2013 E.Function
  2. 想客户之所想 华为全栈云加速行业云化创新
  3. BLE-NRF51822教程11-手机动态修改设备名
  4. 【每周NLP论文推荐】 生成式聊天机器人论文介绍
  5. CCNA课堂练习三:标准访问控制列表和扩展访问控制列表的区别
  6. 关于Spring AOP代理的生成过程
  7. Angular、React、Vue.js 等 6 大主流 Web 框架都有什么优缺点?
  8. setGeometry
  9. css矩形凹陷效果_被低估的CSS滤镜:drop-shadow
  10. AntDesignUI - V3.0 技术手册(资源篇)
  11. 数据科学 IPython 笔记本 8.17 使用 Seaborn 的可视化
  12. 哈工大计算机报深圳还是本部,哈工大本部和哈工大深圳哪个比较好?
  13. 快手用户群体分析_快手发布《2020快手用户及营销报告》
  14. Android 控件获取焦点
  15. 20210811GC垃圾处理
  16. 强制双休!传腾讯光子调整加班机制,21 点前必须离开工位
  17. 怎么利用计算机为学生成绩进行排名,使用excel为学生成绩排序的方法和步骤
  18. 响铃和振动(转载的)
  19. 鸿蒙系统的家电,美的九阳搭载鸿蒙系统的家电正式上市,这手机系统上市真的稳了...
  20. 增加seo好感度,wordpress给文章增加og协议,即meta标签形式如 meta property=”og:

热门文章

  1. 初学者应从文件目录结构理解import的过程,并创建自已的代码库
  2. Nuage:如何看待SD-WAN battle升级
  3. dejavu-python的音频指纹识别库
  4. 白天黑夜模式切换引起的activity销毁重启
  5. 计算机桌面计划,电脑桌面日程安排软件
  6. 微软 Windows 10 Version 2004 新功能盘点:分离Cortana,数项体验升级,抢先体验
  7. mysql 启动失败 必须删除idb文件_MySQL删除idb文件引发的思考-阿里云开发者社区...
  8. python纸对折8848_GitHub - yly8848/Python-100-Days: Python - 100天从新手到大师
  9. Python 学习笔记 变量 xxx XXX
  10. 解决Vscode使用LeetCode报错Failed to test the solution. Please open the output channel for details.