作者:cp
时间:2019-05-06
申明:本文一些素材取自网络,归原作者所有
写在前面
“中华芯,天下行”,自主知识产权的32位C-SKY系列嵌入式CPU核,值得学习
1.开发板介绍
- 基于杭州国芯 GX6605S 芯片,专为学习Linux,可通过buildroot编译
- gcc glibc uclibc-ng gdb linux-kernel
- 价格: 39RMB / 5EUR / 6USD
- 点此购买
2.资源特性
Item | Details |
---|---|
SOC | Nationalchip GX6605S |
CPU | C-SKY ISA V1, CK610M, MMU, 16K-icache, 16K-dcache |
RAM | 64MB DDR2-DRAM,集成在GX6605S中 |
USB | EHCI + OHCI,支持完整的USB2.0/1.1 Host Controller |
HDMI | 1280*720 Framebuffer, 视频播放时可用1080P |
GPIO | 提供5个按键,4个LED, 3个自定义GPIO扩展 |
JTAG | 集成XX32F103C8T6用于USB-JTAG调试,micro-usb连接PC |
UART | 集成CH340g用于USB-UART调试信息输出,micro-usb连接PC |
SPI | 集成4MB SPI Flash用于存放bootloader和播放器程序 |
供电 | 5V1A利用JTAG和UART的micro-usb供电,所以无需额外电源接口 |
!详细信息见https://c-sky.github.io/docs/gx6605s.html
3.快速开始
- 启动U盘的镜像可以从gitlab/c-sky上下载: usb.img
- 烧录U盘方法,请看这里: 烧录U盘
- SPI Flash 中内置bootloader,它会自动检测U盘里的Linux并启动
- 插上任意micro-usb 5V电源,HDMI显示器,USB键盘,就可以当电脑玩了
- 下图中,U盘旁还插着一根USB有线网卡+HUB (RT8152B), 它的上面还插着mt7601u USB-WIFI,这样就扩展出一个有线网络eth0和一个无线网络wlan0
- 开机后,登录用户为root,该系统自带python2.7,可以用python控制GPIO,脚本见根目录python-gpio文件夹
PS:以上官方提供的usb镜像是HDMI输出,串口无法使用,所以即使插入COM标识的micro-usb接口只能看到boot阶段的信息,进入Linux内核后便不能使用,接下来就是搭建开发环境编译使用串口的镜像
3.编译
- 环境准备:VMware+Ubuntu18.04(Ubuntu14.04–Ubuntu18.04均OK)
sudo apt install git
sudo apt install make
sudo apt install make-guile
sudo apt install gcc
sudo apt install g++
sudo apt install python
- 桌面新建C-SKY文件夹,git clone buildroot,编译
mkdir C-SKY
cd C-SKY/
git clone https://github.com/c-sky/buildroot.git
cd buildroot
make csky_610_gx6605s_4.9_uclibc_br_defconfig
make
make clean
make csky_610_gx6605sfb_4.9_uclibc_br_defconfig
make
PS:一共有两个配置可供选择
Item | Details |
---|---|
csky_610_gx6605s_4.9_uclibc_br_defconfig | 使用串口作为终端 |
csky_610_gx6605sfb_4.9_uclibc_br_defconfig | 使用HDMI作为终端 |
3.运行
编译完成后,在buildroot/output/images目录下会生成:
Item | Details |
---|---|
boot.vfat | vfat分区镜像,含有linux内核(uImage)和设备树gx6605s.dtb文件 |
uImage | linux内核镜像 |
gx6605s.dtb | 设备树编译后的二进制文件 |
rootfs.ext2/ext4 | 跟文件系统分区的镜像 |
usb.img.xz | 由boot.vfat和rootfs.ext2/ext4共同组成的U盘完整镜像,包含了分区表信息,已xz压缩 |
csky_toolchain_xxx.tar.xz | 交叉编译工具链 |
之后使用usb.img.xz制作U盘镜像启动即可使用。
3.1有线网络使用(需要usb有线网卡)
/* 获取 DHCP */
udhcpc -i eth0
3.1无线网络使用(MT7601u)
/* 加载驱动 */
$modprobe mt7601u
/* 设置连接 AP 密码 */
$wpa_passphrase wlan_t 12345678 >> /etc/wpa_supplicant.conf
/* 启动wifi连接 */
$wpa_supplicant -Dnl80211 -iwlan0 -c /etc/wpa_supplicant.conf -B
/* 获取 DHCP */
$udhcpc -i wlan0
4.串口+HDMI
因为想使用串口作为控制台,而HDMI显示UI界面,所以修改如下:
- 使用csky_610_gx6605sfb_4.9_uclibc_br_defconfig
- 进入根文件系统后修改
/etc/inittab
# Put a getty on the serial port
- tty0::respawn:/sbin/getty -L tty0 0 vt100 # GENERIC_SERIAL
+ ttyS0::respawn:/sbin/getty -L ttyS0 0 vt100 # GENERIC_SERIAL
PS:禁止printk,隐藏光标echo -e "\033[?25l" > /dev/tty0
参考
[1]https://c-sky.github.io/docs/gx6605s.html
[2]https://www.kancloud.cn/lichee/lpi0/418899