首页 > 其他分享 >Mac开发STC51单片机

Mac开发STC51单片机

时间:2024-01-25 21:59:06浏览次数:29  
标签:main SDCC -- 指定 单片机 Mac include STC51

目录

STC官网

SDCC官网

SDCC简介

SDCC(Small Device C Compiler)是一款开源的C语言编译器,专门设计用于嵌入式系统和小型设备的开发。它支持多种架构和芯片,包括一些常见的单片机和微处理器,如8051、Z80、PIC等。

SDCC安装

brew install sdcc
sdcc -v

头文件目录

cd /usr/local/share/sdcc/include/mcs51
#include <reg51.h>
#include <8051.h>
#include <8052.h>
#include <stc89.h>
#include <stc12.h>

#include <stdio.h>
#include <serial.h>
#include <serial_IO.h>
# 编译C代码,生成多个文件,包括main.ihx、main.hex
sdcc -mmcs51 --model-small -p89 main.c
# -mmcs51: 指定目标平台为MCS-51系列,适用于8051单片机。
# --model-small: 选择小型模型,适用于资源受限的设备,如STC89C51。
# -p89: 指定目标芯片型号为STC89系列。

# 生成.hex文件
packihx main.ihx > main.hex

安装烧录工具

pip3 install stcgal
# 编译程序
sdcc demo.c
# 烧录程序
stcgal -P stc89 -b 9600 -p /dev/cu.wchusbserial1410 demo.ihx

make 编译烧录

  • main.c
#include <stc89.h>

void main(void) {
	
}
  • Makefile 文件内容
# SDCC编译器
CC = sdcc
# SDCC链接器
LD = sdcc
# 编译选项,这里使用了-mmcs51 --model-small来指定目标为8051系列单片机的小模型
CFLAGS = -mmcs51 --model-small -p89

# 源文件的列表,这里只有一个main.c
SRC = main.c

# 目标文件的名称
TARGET = main
IHX_FILE = $(TARGET).ihx
HEX_FILE = $(TARGET).hex

# 是默认的目标,它依赖于$(HEX_FILE)
all: flash clean

# 目标用于烧录生成的Hex文件到STC89系列的单片机
flash: $(SRC)
	$(CC) $(CFLAGS) $(SRC) && packihx $(IHX_FILE) > $(HEX_FILE)

# 烧录程序
# stcgal -p stc89 -P /dev/ttyUSB0 -b 9600 $(IHX_FILE)
	stcgal -p stc89 -P /dev/ttyUSB0 -b 9600 $(HEX_FILE)

# 清理生成的中间文件
clean:
	rm -f *.asm *.cdb *.rel *.rst *.map *.mem *.lk *.lst *.sym *.ihx *.hex
make all

常用命令

选择目标平台

-mmcs51: 适用于MCS-51系列单片机,如8051。
-mpic16: 适用于PIC16系列单片机。

指定芯片型号

-p<model>: 指定目标芯片型号,例如 -p89 表示STC89系列单片机。

设置模型

--model-small: 选择小型模型,适用于资源受限的设备。

调整优化级别

-O0: 关闭优化。
-O1: 启用一般优化。
-O2: 启用更高级别的优化。

生成调试信息

--debug: 生成调试信息,方便调试程序。

指定输出文件名

-o <output>: 指定输出文件的名称。

选择内存布局

--xram-loc 0xXXXX: 指定XRAM区的起始地址。
--code-loc 0xXXXX: 指定代码区的起始地址。

设置堆栈大小

--stack-loc 0xXXXX: 指定堆栈区的起始地址。
--stack-size <size>: 指定堆栈的大小。

生成汇编文件

-S: 生成汇编文件而不进行编译。

指定头文件目录

-I<path>: 添加头文件搜索路径。

使用C89标准

--std-c89: 使用C89标准。

指定RAM区域大小

--xram-size <size>: 指定XRAM区的大小

标签:main,SDCC,--,指定,单片机,Mac,include,STC51
From: https://www.cnblogs.com/wufengsheng/p/17988256

相关文章

  • 通达信金牌MACD副图提示顶底源码
    XA:=DATE<=20240115;DIF:(EMA(C,12)XA-EMA(C,26))XA,COLORF0F0F0;DEA:EMA(DIF,9)XA,COLOR00DCDC;MACD:2(DIF-DEA)XA,COLORSTICK;STICKLINE(MACD>REF(MACD,1)ANDMACD>=0,MACD,0,10/3,0),COLORRED;STICKLINE(MACD>REF(MACD,1)ANDMACD<0,MACD,0,10/3,1),......
  • [Mac软件]DoubleTake for Mac(全景拼图软件) v2.6.12 (1086) 激活版本
    DoubleTakeforMac是一款功能强大的全景拼图软件,专为Mac用户设计,可以帮助用户轻松地将多张照片拼接成一张全景图像。这款软件具有直观的用户界面和丰富的功能,使得全景图像的制作变得简单快捷。本文将详细介绍DoubleTakeforMacv2.6.12激活版本的特点和功能。首先,DoubleTakefor......
  • Mac下Eclipse打不开了怎么办
    其实这个问题能搜到很多答案,但是对我有效的只有下面这一种。背景我需要使用到Eclipse,就下载了它的特定版本,用于开发RAP的。连续两次都是使用后关闭,就再也打不开了。选定的解决方案试了好几种方法,https://www.zhoushicheng.cn/index.php/2023/03/eclipse-not-start-macos.html......
  • 软件技巧-MAC通过快捷键打开Terminal
    背景  MAC系统经常要在Finder某一个位置打开终端(Terminal),现有操作方式为:选中目录,点击鼠标右键,选择打开终端。操作比较多,且如果目标是一个文件,必须到文件的上级目录才能打开终端。目标  选中目录/文件时,通过快捷键直接在当前目录位置打开终端。方案一:通过Shortcuts实现......
  • 转载——Linux/Macos环境下使用 steamcommunity 302 教程
    原博:https://www.dogfight360.com/blog/2319/steamcommunity302后端使用caddy,在生成所有配置文件后可直接迁移到Linux/Macos环境下使用1.首先要在Windows环境/Wine下运行steamcommunity302并在设置里打勾需要开启的功能,然后正常启动服务 2.前往caddy/release页下载......
  • Mac外接 Windows 键盘映射修改
    下载映射软件karabiner-elements官方网址:https://karabiner-elements.pqrs.orgAddrules选择 ComplexModifications ->点击下方的 Addrule;接着点击下方的 Importmorerulesfromtheinternet(Openawebbrowser);在出现的网页中输入 ctrl+c ->选择出现......
  • 高效Mac开发工具大揭秘:提升后端程序员的生产力秘籍
    一、前言作为一名后端开发者,选择正确的工具能显著提高我们的工作效率。在这篇文章中,我将分享我多年使用Mac进行开发所累积的心得,介绍一些我认为对后端程序员特别有帮助的Mac软件和插件。二、软件分类1)提升效率的Mac小工具1.1)ishot截图工具,为什么好用?对我来讲,我喜欢它的地方......
  • Adobe After Effects 2024:让你的创意动起来 mac/win版
    AdobeAfterEffects2024是一款专业的数字视觉效果、合成和运动图形软件,被广泛应用于电影、电视、广告和网络媒体等领域。它能够帮助用户快速高效地将创意转化为令人惊叹的视觉效果,是视觉艺术家的首选工具之一。→→↓↓载AdobeAfterEffects2024mac/win版在AdobeAfterE......
  • Maya 2024:塑造未来的专业3D建模大师 mac/win版
    Maya2024是一款备受赞誉的专业3D建模软件,广泛应用于电影、游戏和设计等领域。作为Autodesk推出的最新版本,Maya2024在3D建模、动画和渲染方面有了许多创新和改进,为用户提供了更强大、更灵活的工具集。→→↓↓载Maya2024mac+winMaya2024的建模工具集非常丰富,包括多边形建模......
  • EasyCVR智能边缘网关启动失败报错“Local Machine Check Error”的解决方法
    国标GB28181安防监控系统EasyCVR平台采用了开放式的网络结构,可支持4G、5G、WiFi、有线等方式进行视频的接入与传输、处理和分发。安防视频监控平台EasyCVR还能支持GIS电子地图模式,基于监控摄像头的经纬度地理位置信息,将场景中的整体安防布控以可视化地图方式呈现,管理人员可以方便......