# Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build git下载并解压龙芯官方工具链(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 --versionsudo 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)# 假设开发板 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 通过串口传输文件,适用于无网络环境。
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_qtQt APP 通过 POSIX 共享内存
/smart_charger_status读取数据,因此必须与主控程序运行在同一台龙芯开发板上。
- 确保手机与龙芯开发板连接同一 WiFi
- 安装「龙辰星曜」APP(v2.1.5)
- APP 默认监听 UDP 8888 端口
- 开发板
udp.cpp中默认目标手机 IP 为192.168.137.148,请根据实际情况修改后重新编译
编辑 project/user/udp.cpp:
static char phone_ip[32] = "192.168.137.148"; // 改为手机实际 IP检查工具链是否在 PATH 中:
echo $PATH | grep loongarch如果未显示,重新 source ~/.bashrc 或手动 export PATH。
确认 cross.cmake 中的 TOOLCHAIN_DIR 路径与你的实际安装路径一致。
- 确认主控程序已在运行
- 确认共享内存
/smart_charger_status已创建:ls -l /dev/shm/ - 确认 Qt APP 与主控运行在同一设备上
- 检查板载显示屏驱动和触摸驱动是否加载
- 检查手机与开发板是否在同一网段
- 确认
phone_ip已改为手机实际 IP - 关闭手机/路由器对 UDP 8888 的拦截
- 在开发板上执行:
netstat -ulnp | grep 8888
- 检查
/dev/i2c-1是否存在 - 用
i2cdetect -y 1扫描设备地址 - 确认 INA226 供电正常、上拉电阻已焊接