littlebot
Published on 2025-04-10 / 0 Visits
0

【源码】基于C语言的Fernvale CPU逆向工程操作系统

项目简介

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】