Skip to content

Latest commit

 

History

History
186 lines (124 loc) · 4.15 KB

build-guide.md

File metadata and controls

186 lines (124 loc) · 4.15 KB

编译与烧录指南

环境准备

1. 安装基础工具

# Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build git

2. 安装 LoongArch 交叉编译工具链

下载并解压龙芯官方工具链(rc1.6):

# 创建安装目录
sudo mkdir -p /opt/ls_2k0300_env
cd /opt/ls_2k0300_env

# 下载(从龙芯开源社区获取)
wget https://github.com/loongson/build-tools/releases/download/8.3/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.6.tar.gz
sudo tar -xzf loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.6.tar.gz

# 添加到 PATH
echo 'export PATH=$PATH:/opt/ls_2k0300_env/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.6/bin' >> ~/.bashrc
source ~/.bashrc

# 验证
loongarch64-linux-gnu-gcc --version

3. 安装 Qt(编译本地监控 APP 时需要)

sudo apt-get install -y qt5-default qtcreator libqt5widgets5-dev

若在龙芯开发板上直接编译 Qt APP,需安装对应 LoongArch 版本的 Qt 开发包。


编译嵌入式主控程序

# 进入项目目录
cd /path/to/your-repo/project

# 准备构建目录
mkdir -p build
cd build

# 使用交叉编译工具链配置
cmake -DCMAKE_TOOLCHAIN_FILE=../user/cross.cmake ../user

# 编译(使用 4 核并行)
make -j4

编译成功后,会在 project/build/project 生成可执行文件。

直接在龙芯开发板上编译

如果已有龙芯开发环境,可直接:

cd /path/to/your-repo/project/user
mkdir -p build && cd build
cmake ..
make -j$(nproc)

烧录到龙芯 2K0300 开发板

方法一:scp 推送(推荐)

# 假设开发板 IP 为 192.168.1.100
scp project/build/project root@192.168.1.100:/root/smart_charger

# SSH 登录开发板
ssh root@192.168.1.100

# 在开发板上运行
chmod +x /root/smart_charger
/root/smart_charger

方法二:串口烧录

使用 minicom / picocom / lrzsz 通过串口传输文件,适用于无网络环境。


编译 Qt 本地监控 APP

在 x86 开发主机交叉编译到龙芯

cd qt_app

# 配置为龙芯 Qt 工具链(需提前安装 LoongArch Qt)
/path/to/loongarch-qt/bin/qmake smart_charger_qt.pro

make -j4

# 推送可执行文件到开发板
scp smart_charger_qt root@192.168.1.100:/root/

在龙芯开发板上直接编译

ssh root@192.168.1.100
cd /root/your-repo/qt_app
qmake smart_charger_qt.pro
make -j$(nproc)
./smart_charger_qt

Qt APP 通过 POSIX 共享内存 /smart_charger_status 读取数据,因此必须与主控程序运行在同一台龙芯开发板上。


手机 APP 使用

  1. 确保手机与龙芯开发板连接同一 WiFi
  2. 安装「龙辰星曜」APP(v2.1.5)
  3. APP 默认监听 UDP 8888 端口
  4. 开发板 udp.cpp 中默认目标手机 IP 为 192.168.137.148,请根据实际情况修改后重新编译

修改目标手机 IP

编辑 project/user/udp.cpp:

static char phone_ip[32] = "192.168.137.148";  // 改为手机实际 IP

常见问题

Q1: 编译报错 "loongarch64-linux-gnu-gcc: command not found"

检查工具链是否在 PATH 中:

echo $PATH | grep loongarch

如果未显示,重新 source ~/.bashrc 或手动 export PATH。

Q2: CMake 找不到工具链

确认 cross.cmake 中的 TOOLCHAIN_DIR 路径与你的实际安装路径一致。

Q3: Qt APP 黑屏或收不到数据

  • 确认主控程序已在运行
  • 确认共享内存 /smart_charger_status 已创建:ls -l /dev/shm/
  • 确认 Qt APP 与主控运行在同一设备上
  • 检查板载显示屏驱动和触摸驱动是否加载

Q4: 手机 APP 收不到数据

  • 检查手机与开发板是否在同一网段
  • 确认 phone_ip 已改为手机实际 IP
  • 关闭手机/路由器对 UDP 8888 的拦截
  • 在开发板上执行:netstat -ulnp | grep 8888

Q5: I2C / INA226 读取失败

  • 检查 /dev/i2c-1 是否存在
  • 用 i2cdetect -y 1 扫描设备地址
  • 确认 INA226 供电正常、上拉电阻已焊接

下一步