专栏名称: Python之禅
分享Python相关技术干货,偶尔扯扯其它的
目录
相关文章推荐
Python爱好者社区  ·  “给我滚出贵大!”郑强出任贵州大学校长,打算 ... ·  2 天前  
Python爱好者社区  ·  节后第一个私活,赚了3w ·  昨天  
Python爱好者社区  ·  DeepSeek 最新中国大学排名 ·  16 小时前  
Python开发者  ·  “李飞飞团队50 美元炼出 ... ·  3 天前  
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  3 天前  
51好读  ›  专栏  ›  Python之禅

30块钱的树莓派跑unix系统,源码全部开源,香

Python之禅  · 公众号  · Python  · 2021-03-30 18:45

正文


▌ 1、前言

树莓派最新推出的单片机Pico,这是一款便捷灵活、方便上手的开源电子原型平台,许多大佬都玩得飞起来了,手痒自己玩了下,觉得这个东西确实很香,比一般的Linux开发板都好。

PICO

这个开发板可以玩很多东西

1 、运行pico-sdk

2、玩micropython

3、跑这个Fuzix系统

我这个文章只说Fuzix系统相关的,因为这个系统很小,喜欢的同学都可以自尝试学习。

▌ 2、硬件准备

  • 一个树莓派pico 开发板
  • 一个micro usb 线,用来给树莓派供电的,如果跑mcropython的话,还可以用来作为调试串口。
  • 一根usb线,跑Fuzix的时候,作为系统的登录终端。

▌ 3、软件准备

一个可以编译的ubuntu系统,可以装在vm上

▌3.1、SDK代码下载

▌3.1.1 pico-sdk下载

git clone [email protected]:raspberrypi/pico-sdk.git

▌3.1.2 tinyusb源码下载

下载这个之后,还需要下载tinyusb源代码,这个源代码默认在pico-sdk源码中,只不过上面的命令不能触发tinyusb 的源码下载。

tinyusb源代码:

git submodule update --init --recursive lib/tinyusb

上面的命令会比较慢,可以单独下载这个源码库,使用下面的命令:

git clone [email protected]:raspberrypi/tinyusb.git

▌3.1.2 Fuzix源码下载

git clone https://github.com/davidgiven/FUZIX.git

▌3.2、编译工具准备


▌3.2.1、cmake 安装

因为对cmake版本有要求,不能使用 sudo apt install cmake 安装。、

从网站

http://distfiles.macports.org/cmake/

下载一个 3.13 的版本,然后传到ubuntu系统上,解压

$ tar -zxvf cmake-3.12.4.tar.gz
cd cmake-3.12.4
$ ./configure
$ make
$ sudo make install

▌3.2.2、gcc-arm-none-eabi安装

sudo apt-get install gcc-arm-none-eabi

▌3.3.3、其他需要的工具安装

sudo apt-get update -q
sudo apt-get install -y byacc
sudo apt-get install -y byacc automake   # FUZIX build deps
sudo apt-get install -y lwtools gcc6809
sudo apt-get install -y sdcc
sudo apt-get install -y cc65
sudo apt-get install -y m68k-uclinux-binutils m68k-uclinux-elf2flt m68k-uclinux-gcc

▌4、编译

先切换到树莓派分支

git checkout rpipico

编译之前,需要修改Makefile

diff --git a/Kernel/platform-rpipico/Makefile b/Kernel/platform-rpipico/Makefile
index 0d5e8a19..8c238770 100644
--- a/Kernel/platform-rpipico/Makefile
+++ b/Kernel/platform-rpipico/Makefile
@@ -1,4 +1,4 @@
-export PICO_SDK_PATH = /home/dg/src/pico/pico-sdk
+export PICO_SDK_PATH = /home/book/pico-sdk/
 
 build/fuzix.elf: ../version.c build/Makefile
        $(MAKE) -C build

然后到 Kernel/platform-rpipico 目录中去执行命令

make world -j
./update-flash.sh

如果编译顺利,就会看到下面相关的文件

▌5、烧录

树莓派的烧录我觉得体验很好,如果再能加上一个 复位 按键就能更加完美了。

按下 BOOTSET 键开机,然后就会弹出一个盘符,往盘符里面放入我刚才说的那两个文件,设备会自动重启,这时候就完成烧录了。

▌6、系统体验

链接串口,链接串口可以有很多种方式,我用的是 MobaXterm 工具。波特率是 115200

开机日志:

FUZIX version 0.4pre1
Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza
Copyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da Cunha
Copyright (c) 2013-2015 Will Sowerbutts 
Copyright (c) 2014-2020 Alan Cox 
Devboot
264kB total RAM, 160kB available to processes (15 processes max)
Enabling interrupts ... ok.
NAND flash, 1952kB physical 1296kB logical at 0x13018000: hda:
SD drive 0: no card found
Mounting root fs (root_dev=0, ro): warning: mounting dirty file system, forcing r/o.
OK
Starting /init
init version 0.9.0ac#1
Cannot open file
Current date is Thu 2021-03-11
Enter new date:

开机后需要你填写当时时间,才会继续下一步

Starting /init
init version 0.9.0ac#1
Cannot open file
Current date is Thu 2021-03-11
Enter new date: 2021-03-11
Current time is 11:34:54
Enter new time: 15:05:00

 ^ ^
 n n   Fuzix 0.3.1
 >@<
       Welcome to Fuzix
 m m

login:

然后填写用户名,用户名是 root ,密码为空

login: root

Welcome to FUZIX.
#

显示当前时间:

# date






请到「今天看啥」查看全文