项目简介
Fernly是基于C语言设计的简单操作系统,主要用于Fernvale CPU的逆向工程。该项目为临时项目,当系统被充分理解后,可能会被完整的操作系统所取代。
项目的主要特性和功能
- 基本硬件初始化:可对UART、SPI、USB等硬件进行初始化。
- 基本命令行接口:用户能通过串口输入命令控制硬件。
- 脚本命令集合:支持执行脚本命令,完成读写内存、调用函数和延时等操作。
- USB数据包解析:可提取特定USB数据包。
- “flashrom”模式:能与flashrom程序直接通信以操作板载SPI。
安装使用步骤
假设用户已下载本项目的源码文件,以下是安装使用步骤:
1. 交叉编译环境搭建(Linux)
bash
sudo setup_codesourcery/setup.sh
/usr/local/bin/codesourcery-arm-2014.05.sh
2. 编译项目
- 本地编译:直接运行
make
。 - 交叉编译:设置
CROSS_COMPILE
为交叉编译器的前缀,例如make CROSS_COMPILE=arm-none-linux-gnueabi-
。
3. 运行项目
连接目标设备,运行以下命令:
bash
./build/fernly-usb-loader -s /dev/fernvale./build/usb-loader.bin./build/firmware.bin
若设备需在连接USB后短时间内进入引导模式,可使用-w
选项:
bash
./build/fernly-usb-loader -w -s /dev/ttyUSB0./build/usb-loader.bin./build/firmware.bin
4. Linux系统注意事项
由于Fernvale基于联发科芯片,默认情况下ModemManager会将其视为调制解调器。为避免此问题,需在/etc/udev/rules.d/
下创建98-fernvale.rules
文件,内容如下:
```plaintext
SUBSYSTEM=="tty", ATTRS{idVendor}=="0e8d",\
ATTRS{idProduct}=="0003",\
MODE="0660", SYMLINK+="fernvale"
ACTION=="add|change", SUBSYSTEM=="usb",\ ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0e8d",\ ATTRS{idProduct}=="0003",\ ENV{ID_MM_DEVICE_IGNORE}="1" ```
5. OSX系统注意事项
文档未提供相关内容,请参考其他补充资料。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】