积分311 / 贡献0

提问1答案被采纳1文章20

[经验分享] 龙芯2K1500芯片适配中的难点讨论

诚迈-陆志刚 显示全部楼层 发表于 2024-11-1 17:12:39
龙芯2K1500芯片适配中的难点讨论
文章基于诚迈科技面向社区开源2K1500为背景展开讨论。

开发板介绍:

诚迈科技鸿诚志远龙系列开发板2k1500由核心板+底板构成

处理器核心:基于LoongArch龙架构指令集的龙芯2K1500工控芯片,内部集成2个LA264核,主频1.0GHz

应用领域:工业控制、边缘计算、物联网

1.png

2.png

一、测试底板

1、测试底板具有丰富的接口和设备,涵盖了存储、通信、电源等多个方面,以满足不同应用场景的需求。

2、随着技术的发展,测试底板可增加更多的接口和设备以满足不断变化的需求。

3、测试底板中,UARTO-RS232、UART3-RS232 和 GPI0都提供了排针接口,方便用户进行扩展和连接。

4、提供实时补丁。

5、可根据实际需要,在工业、能源等行业需求场景,集成CodeSys或者其他国产PLC软件编程工具。

3.png


二、龙芯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库中的结构体定义。


©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部