IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 全志F1C100s使用记录:资料索引与基础说明 -> 正文阅读

[系统运维]全志F1C100s使用记录:资料索引与基础说明

前言

最早接触到F1C100s是前两年的一个文章,里面使用F1C100s制作了一张可以运行Linux的名片,就是下图这个。下图上实际电路部分就占用角落一点点面积,当时觉得蛮有意思的的,可以跑Linux的开发板可以做这么小,成本和常见单片机最小系统板差不多,用来玩挺有意思的。
在这里插入图片描述
在这里文章里了解到 Sipeed Lichee Nano (荔枝派Nano),这个差不多可以当作F1C100s的最小系统板板用了,某宝一搜一大片,当时价格还不错,这两年因为疫情等各种原因价格上涨不少。
在这里插入图片描述
这篇文章将介绍下上手玩F1C100s需要的一些基础信息,方便回头查询使用。

资料来源

u-boot & linux

F1C100s玩的最多的就是拿来搞Linux玩,重要的是针对该芯片的uboot和linux的修改,这里收集了一些主要的项目:

u-boot

  • https://github.com/Icenowy/u-boot
    这个项目有 f1c100sf1c100s-spiflash 两个分支,后者更加新点;
    分支中有 licheepi_nano_defconfiglicheepi_nano_spiflash_defconfig 两个配置文件;
  • https://github.com/Lichee-Pi/u-boot
    这个项目包含荔枝派所有的u-boot,对于F1C100s而言则是在前面项目的 f1c100s-spiflash 分支基础上新增了 nano-lcd800480 分支,增加了对lcd的支持;

linux

基础特性

F1C100s是全志的一颗比较便宜的芯片,其功能框图如下:
在这里插入图片描述
典型应用如下:
在这里插入图片描述

  • F1C100s的内核是 ARM926EJ-S ,ARMv5架构,有MMU,没有硬件FPU,主频默认为408MHz;
  • F1C100s内置32MB DDR1内存;
  • F1C200s是F1C100s的兄弟型号,其它特性都相同,内存容量翻倍为64MB;

F1C100s和F1C200s价格便宜的时候可以在1~2刀左右,带有LCD、摄像头、音频、视频等接口,还内置几十兆内存,用来简单的点屏使用比单片机之类的好多了。所以经常可以看到用F1C100s来做行车记录仪或是复古游戏机等产品。

启动过程

F1C100s的启动过程在它流出的手册中并没有找到相关描述,在 全志V3sDataSheet4.2. Boot System 章节中倒是有相似描述,可以作为参考:
在这里插入图片描述
芯片上电启动后,芯片会先执行内部固化的程序(BROM),该程序会依次检查外部存储器是否可用,如果可用再从中加载第二阶段程序(SPL)并执行。如果前面过程失败了则会进入全志系列处理器内置的FEL模式。

对于F1C100s而言启动时寻找用户程序的位置顺序如下:

  • SDC0接口(PF0~PF5)上的SD(TF)卡;
  • SPI0接口(PC0~PC3)上的Nor Flash;
  • SPI0接口(PC0~PC3)上的Nand Flash;

对于SD(TF)卡而言在它上面的数据存储布局通常如下:

startsectorsizeusage
0KB08KBUnused, available for an MBR or (limited) GPT partition table
8KB1632KBInitial SPL loader
40KB80Max 984KBU-Boot
1MB2048-bootfs and rootfs

上面参数中SPL从8K位置开始不能动(这是由BROM决定的);文件系统可以根据需要来分区,boot分区在前,通常为FAT格式。

如果使用上文列出的那些 u-boot 项目,编译后会得到 u-boot-sunxi-with-spl.bin 这个文件会拼合 spl 和 u-boot ,直接把这个文件写入到 8KB 开始的位置就行了。

更多内容可以参考:https://linux-sunxi.org/Bootable_SD_card

对于SPI Flash而言其实和SD(TF)卡而言差不多,最关键的就是将 u-boot-sunxi-with-spl.bin 文件放在头部,即从0位置开始写入;其它内容根据需求而设置,只要对应的调整 u-boot 读取启动内核时相关位置参数就行。

需要注意的是默认情况下SPI Flash最大支持16M,更大就需要在程序中设置bank了。

FEL模式

上文中可以了解到F1C100s要是启动外部程序均失败的话就会进入FEL模式,用户可以通过USB(Pin68 & Pin69)和芯片进行交互 。在FEL模式你可以直接运行 u-boot 和 linux 等,也可以将数据写入spiflash中(可以用作烧录固件到设备中)。

FEL模式其实也就是BROM上的一段程序,可以在 u-boot 命令行中使用 go 0xffff0020 跳转进入。另外也可以通过在SD(TF)卡写入下面数据来通过SD(TF)卡启动跳转:

# sdX 为SD(TF)卡,使用 sudo fdisk -l 查看
# 如果有自动挂载的分区则逐条使用 sudo umount /dev/sdXn 进行卸载
wget https://github.com/linux-sunxi/sunxi-tools/raw/master/bin/fel-sdboot.sunxi
sudo dd if=fel-sdboot.sunxi of=/dev/sdX bs=1024 seek=8

为了和FEL模式下的芯片交互我们还需要用到 sunxi-tools 工具包,针对运行程序或烧录等操作需要用到其中的 sunxi-fel 工具,工具包项目地址如下:
https://github.com/Icenowy/sunxi-tools

针对F1C100s的 sunxi-fel 工具可以使用下面方式下载、编译、安装:

sudo apt install pkg-config zlib1g-dev libusb-1.0-0-dev
git clone https://github.com/Icenowy/sunxi-tools.git -b f1c100s-spiflash
cd sunxi-tools && make && sudo make install

安装完成后可以使用 sudo sunxi-fel -l 列出所有处于FEL模式的设备、使用 sudo sunxi-fel ver 设备 BROM 信息:
在这里插入图片描述
可以使用 sudo sunxi-fel uboot /path/u-boot-sunxi-with-spl.bin 来直接运行u-boot程序;
可以使用 sudo sunxi-fel -p spiflash-write addr file (addr常用0)将数据写入spiflash(注意最大16M,再大可能需要改程序)。

对于Windows上装虚拟机来操作的话这之间还有一个坑:默认情况下FEL模式的USB设备Windows是无法识别的,这样就更没法传递给虚拟机使用了。这个问题可以使用 https://zadig.akeo.ie/ 这个工具来安装驱动解决(主要关注VID和PID就行):
在这里插入图片描述
在这里插入图片描述

除了 sunxi-fel ,也可以使用第三方的 XFEL 工具来进行FEL模式下的交互操作, XFEL 还有提供windows版本的可执行文件。项目地址如下:
https://github.com/xboot/xfel

关于FEL模式的更多内容可以参考下面链接:
https://linux-sunxi.org/FEL
https://linux-sunxi.org/FEL/USBBoot

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 23:03:00  更:2022-03-10 23:03:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:39:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码