CEO 亲自写代码登上GitHub 热榜,从零开始打造 “裸金属” 树莓派!

Posted xhmj12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CEO 亲自写代码登上GitHub 热榜,从零开始打造 “裸金属” 树莓派!相关的知识,希望对你有一定的参考价值。

相关阅读:杭州程序员从互联网跳央企,晒一天工作和收入,网友:待一年就废


 

 

来自量子位

CEO 亲自写的代码是啥样?

来自 RealVNC 公司的 CEO 说,自己长年当管理者,代码生疏了,所以决定重拾一下程序员工作,写一点树莓派的代码。

结果,一不小心就上了技术论坛 Hacker News 热门。

这串代码究竟是什么?打开这位 CEO 的 Twitter 一看,是一段小游戏。搜索公众号互联网架构师回复“2T”,送你一份惊喜礼包。

花了一年时间就写了个这?当然不是,这位 CEO 可是从零开始打造的这款游戏,连系统启动文件都是自己写的。

通常我们使用树莓派都会在 SD 卡上刷写好操作系统,其实树莓派还能从零开始打造成一款 “裸金属”(Bare Metal)计算机。

所谓 “裸金属” 就是没有操作系统的计算机,直接在逻辑硬件上执行指令。这位 CEO 说,打造一个裸金属系统是他儿时的志向。

所以就有了这串,从零开始到成功运行 Hello World,再到运行小游戏的程序。搜索公众号互联网架构师回复“2T”,送你一份惊喜礼包。

从启动硬件到 Hello World

目前,该项目已经完成了 12 章,仍在 GitHub 上继续更新中,截至今天已经收获了 1.6k 星。

项目内容有:启动、构建基本代码、运行 HelloWorld、调用蓝牙声音硬件等。

在编写代码之前先要准备树莓派 4 的周边硬件:HDMI 线、micro-SD 卡以及 USB 转 TTL 线

由于编译过程是在电脑上进行,而程序是在树莓派上运行,因此还要在电脑上安装交叉编译器

接下来开始引导树莓派启动:

树莓派 4 运行的第一个代码需要用汇编语言编写,之后由 C 语言来编写内核。搜索公众号互联网架构师回复“2T”,送你一份惊喜礼包。

写好启动代码后,再制作 makefile 文件进行交叉编译。

CFILES = $(wildcard *.c)OFILES = $(CFILES:.c=.o)GCCFLAGS = -Wall -O2 -ffreestanding -nostdinc -nostdlib -nostartfilesGCCPATH = ../../gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/binall: clean kernel8.imgboot.o: boot.S$(GCCPATH)/aarch64-none-elf-gcc $(GCCFLAGS) -c boot.S -o boot.o%.o: %.c$(GCCPATH)/aarch64-none-elf-gcc $(GCCFLAGS) -c $< -o $@kernel8.img: boot.o $(OFILES)$(GCCPATH)/aarch64-none-elf-ld -nostdlib boot.o $(OFILES) -T link.ld -o kernel8.elf$(GCCPATH)/aarch64-none-elf-objcopy -O binary kernel8.elf kernel8.imgclean:/bin/rm kernel8.elf .o .img > /dev/null 2> /dev/null || true

运行 make 后构建内核映像 kernel8.img,将镜像文件复制到 SD 卡中,这样就可以启动树莓派了。

不过树莓派在这一通操作后只能运行启动画面,之后只剩下一个空的黑屏。

然后就是让树莓派程序员熟悉的 “Hello World” 程序,但是在一台黑屏的机器上如何运行呢?这就需要用到 UART 串行通信。

刚刚准备的 USB 转 TTL 线这时候就派上了用场。

将 TTL 的 RX 引线(白色)链接到 GPIO 的 TXD 引脚上,TX 引线(绿色)链接到 GPIO 的 RXD 引脚上,地线(黑线)连接到 Ground 引脚上。

电脑上还要安装 PuTTY,将链接方式选择为 “Serial”,Speed 设置为 115200,搜索公众号互联网架构师回复“2T”,送你一份惊喜礼包。

#include “io.h”void main()uart_init();uart_writeText(“Hello world!\\n”);while (1);

这里的头文件 io.h 也不存在,需要自己定义。

但是此时的树莓派还有没字体文件,也就是屏幕无法正常显示英文字母,也需要自定义。经过一系列操作后,这位 CEO 终于在屏幕上成功显示了 “Hello world!” 和几个几何图形。

编程并没有到此截止,这位 CEO 后面又实现了对蓝牙互传信息、播放音频文件等操作。他还表示,项目还在持续更新中。

关于作者

“裸金属” 树莓派的作者 Adam Greenwood-Byrne 毕业于牛津大学,2009 年加入 RealVNC 担任销售经理,2018 年成为这家公司 CEO。

他的 GitHub 主页上目前只有一个项目,第一章内容是他在疫情隔离期间完成的,之后项目就处于休眠状态。

不过从今年的活跃度来看,他从今年开始又重拾了该项目,开始认真写代码了。

参考链接:
[1]https://github.com/isometimes/rpi4-osdev
[2]https://www.rpi4os.com
[3]https://twitter.com/isometim_es/status/1446359865274871818
[4]https://news.ycombinator.com/item?id=2877402

1、985副教授工资曝光

2、心态崩了!税前2万4,到手1万4,年终奖扣税方式1月1日起施行~

3、雷军做程序员时写的博客,很强大!

4、人脸识别的时候,一定要穿上衣服啊!

5、清华大学:2021 元宇宙研究报告!

6、绩效被打3.25B,员工将支付宝告上了法院,判了

以上是关于CEO 亲自写代码登上GitHub 热榜,从零开始打造 “裸金属” 树莓派!的主要内容,如果未能解决你的问题,请参考以下文章

标星 7.2w+!GitHub 上这个教人从零开始造轮子的项目又强势登上热榜!

80岁还在写代码!Hello World发明人登上GitHub热榜

80岁还在写代码!Hello World发明人登上GitHub热榜

80岁还在写代码!Hello World发明人UNIX命名者项目登上GitHub热榜

突然登上GitHub热榜!谷歌的这款测试工具,别告诉我你不知道

11k Star!登上 Github 热榜前三的神经搜索框架!