之前活动抽奖获得的几个树莓派,手痒自己玩了下,觉得这个东西确实很香,比一般的Linux开发板都好。
PICO
这个开发板可以玩很多东西
1 、运行pico-sdk
2、玩micropython
3、跑这个Fuzix系统
我这个文章只说Fuzix系统相关的,因为这个系统很小,喜欢的同学都可以自尝试学习。
1、硬件准备
- 一个树莓派pico 开发板
- 一个micro usb 线,用来给树莓派供电的,如果跑mcropython的话,还可以用来作为调试串口。
- 一根usb线,跑Fuzix的时候,作为系统的登录终端。
2、软件准备
一个可以编译的ubuntu系统,可以装在vm上
3.1、SDK代码下载
3.1.1 pico-sdk下载
- git clone git@github.com:raspberrypi/pico-sdk.git
2.1.2 tinyusb源码下载
下载这个之后,还需要下载tinyusb源代码,这个源代码默认在pico-sdk源码中,只不过上面的命令不能触发tinyusb 的源码下载。
tinyusb源代码:
- git submodule update --init --recursive lib/tinyusb
上面的命令会比较慢,可以单独下载这个源码库,使用下面的命令:
- git clone git@github.com:raspberrypi/tinyusb.git
2.1.2 Fuzix源码下载
- git clone https://github.com/davidgiven/FUZIX.git
2.2、编译工具准备
2.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
2.2.2、gcc-arm-none-eabi安装
- sudo apt-get install gcc-arm-none-eabi
2.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
3、编译
先切换到树莓派分支
- 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
如果编译顺利,就会看到下面相关的文件
4、烧录
树莓派的烧录我觉得体验很好,如果再能加上一个复位按键就能更加完美了。
按下BOOTSET键开机,然后就会弹出一个盘符,往盘符里面放入我刚才说的那两个文件,设备会自动重启,这时候就完成烧录了。
5、系统体验
链接串口,链接串口可以有很多种方式,我用的是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 <will@sowerbutts.com>
- Copyright (c) 2014-2020 Alan Cox <alan@etchedpixels.co.uk>
- 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
- Thu Mar 11 15:07:15 GMT 2021
- #
小说话:
- # cd usr
- # ls
- games
- lib
- man
- # cd games
- # ls
- advent
- cowsay
- lib
- # ./cowsay Fuzix
- _______
- < Fuzix >
- -------
- \ ^__^
- \ (oo)\_______
- (__)\ )\/\
- ||----w |
- || ||
- #
在 /bin 下面还有很多其他命令。
6、其他
还可以加一个SDCARD文件系统,具体实现可以看这篇文章
- https://shumeipai.nxez.com/2021/03/03/how-to-get-started-with-fuzix-on-raspberry