龙芯2K1500芯片适配中的难点讨论
文章基于诚迈科技面向社区开源2K1500为背景展开讨论。
开发板介绍:
诚迈科技鸿诚志远龙系列开发板2k1500由核心板+底板构成
处理器核心:基于LoongArch龙架构指令集的龙芯2K1500工控芯片,内部集成2个LA264核,主频1.0GHz
应用领域:工业控制、边缘计算、物联网
一、测试底板
1、测试底板具有丰富的接口和设备,涵盖了存储、通信、电源等多个方面,以满足不同应用场景的需求。
2、随着技术的发展,测试底板可增加更多的接口和设备以满足不断变化的需求。
3、测试底板中,UARTO-RS232、UART3-RS232 和 GPI0都提供了排针接口,方便用户进行扩展和连接。
4、提供实时补丁。
5、可根据实际需要,在工业、能源等行业需求场景,集成CodeSys或者其他国产PLC软件编程工具。
二、龙芯2K1500移植注意点
1、编译工具链设置为龙芯GCC编译器loogngarch
2、解决GCC编译器导致的模块编译出错问题
3、musl库编译生产musl-gcc-loongarch.specs。替代默认的 glibc 时,需要确保 GCC 在编译和链接程序时使用 musl libc的运行时库和启动文件(比如 crti.o、crt1.o和 crtn.o)。
例如:loongarch64-linux-gn-gcc -specs=musl-gcc-loongarch.specs -c test.c
三、龙芯2K1500移植过程中的问题分析
问题点:程序调用stat()函数异常
原因:编译器系统头文件与musl库头文件stat.h中结构体struct stat不兼容导致。
分析:OpenHarmony部分静态库使用了gcc编译器中的头文件编译
而链接了这些静态库的应用程序最后使用的是musl库实现的stat()函数头文件不一致会导致程序跑飞
修改为使用musl库中的结构体定义。