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
我烧录一个程序看看
噢,这样看起来还是挺酷的哦。
评论
Agora-MoonLightiOS/Mac 上的性能测试组件
MoonLight是iOS/Mac上的性能测试组件,它可以单独集成在任何App中实现自动化性能数据的采集,你可以非常轻松的获取到AppCPU、SystemCPU、AppMemory、SystemGPU
Agora-MoonLightiOS/Mac 上的性能测试组件
0
Mac上十大推荐好用的视频压缩工具
目前对视频压缩的需求与日俱增。较小尺寸的视频易于管理,也可通过电子邮件,互联网和其他方式共享,还能为系统腾出额外的存储空间以容纳其他的视频和文档。在您的Mac系统上,无论存储量多大,您总会遇到内存的问题。要在Mac上腾出更多容量的话,那就必须使用专业工具以在Mac上压缩视频。本文将逐一探讨各种Mac视频压缩器。
第1部分. 适用于MAC的最佳视频压缩器
视频压缩软件的种类繁多,而当中最适合Mac使用的正是万兴优转。这是一款完整的视频工具箱,可执行视频转换,视频压缩,视频传输,DVD刻录,视频编辑和视频下载等一系列功能。该程序支持超过1000种转换格式,还能为特定设备的格式进行转换。此Mac版本视频压缩器应用程序通过更改其大小,
万兴优转
0
Mac上那些好用的文字识别工具
识别图片上的文字(OCR),手机上有很多app可以做到。不过在工作环境中,能在电脑上直接识别后导入文本编辑软件毕竟比较方便。以下就是Mac上的一些好用OCR工具。
萌新用户
方法一:iText
App Sore里有下载,每个月50次以内免费。如果是偶尔用用的话足够了。
方法二:QQ
Mac上的QQ已经支持了OCR,点击截图按钮,会出现“截图/录屏/识图”三个选项,点击识图就可以了,非常方便。识别准确率很高,而且能自动识别换行,相当厉害。
QQ识图
高级用户
如果希望更方便的工作流(毕竟我不喜欢开个QQ只是为了识图用),以及更频繁的使用(iText有免费次数限制),那么还有两种选择:
方法一:CaptuocrTo
大如
0