mac上玩 51 也是挺爽的

嵌入式Linux

共 2374字,需浏览 5分钟

 · 2023-09-05

今天在网上看到一个不错的项目,可以在 mac 上开发 51 单片机。

烧录程序

在 macbook 下可以使用Homebrew直接运行brew命令安装:


$ brew install sdcc


SDCC是什么? 

sdcc是一个提供 优化标准 C (ANSI C89,ISO C99,ISO C11)的编译器套件;兼容多种单片机的编译。

当然,在语法上有些差异

我编译一个程序看看

#include<8052.h>
#define uchar unsigned char
#define uint unsigned int
#define lcden P2_5
#define lcdrs P1_0
#define rw P1_1
#define dula P2_6
#define wela P2_7
uchar table[] = "Hello World!";
uchar num;
void delay(uint z) {
uint x, y;
for(x = z; x > 0; x--)
for(y = 110; y > 0; y--);
}
void write_com(uchar com) {
    lcdrs = 0;
    P0 = com;
    delay(5);
    lcden = 1;
    delay(5);
    lcden = 0;
}
void write_data(uchar date) {
    lcdrs = 1;
    P0 = date;
    delay(5);
    lcden = 1;
    delay(5);
    lcden = 0;
}
void init() {  
    rw = 0;
    dula = 0;
    wela = 0;
    lcden = 0;
    write_com(0x38);
    write_com(0x0e);
    write_com(0x06);
    write_com(0x01);
    write_com(0x80);
}
void main() {
    init();
for(num = 0; num < 12; num++) {
        write_data(table[num]);
        delay(100);
    }
while(1);
}

我们看了芯片的 RAM 大小是 256 字节

然后我们再看看编译出来的产物,可以看到栈的起始地址,还有 RAM 的大小。

ihx 是一些机器码,这个和Windows 软件编译出来是差不多一样的内容,也是我们需要烧录到机器里面的文件。

asm 文件是汇编文件,从里面可以看到程序的实际跳转指令。

map 文件里面可以看到很多映射相关的信息,还是挺有意思的。

烧录工具

烧录工具看这个 github 项目

https://github.com/grigorig/stcgal/tree/master

我烧录一个程序看看

噢,这样看起来还是挺酷的哦。


浏览 1890
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报