MA35D1嵌入式linux+qt开发教程
本帖最后由 三年模拟 于 2023-1-11 10:35 编辑这段时间使用这款芯片,基本上已经摸透了,现在简单写个如何搭建开发环境,最后使用QT开发应用层。
1、下载官方buildroot,https://github.com/OpenNuvoton/MA35D1_Buildroot,官方提供三种不同规格的配置,我选择的是bga封装带emmc启动那款
make numaker_som_ma35d16a81_defconfig
2、接下来使用make menuconfig,这里编译器建议官方自带的,我自己也尝试用预编译的编译器,但是配置后编译会有一个编译器的内核版本错误,需要修改编译器版本号比较麻烦,使用官方则没这个问题。内核方面用官方的配置,如果设备树需要自行更改的,In-tree device tree source file name,这里更改成自己的,因为内核也是github下载的,建议先用官方配置,编译成功后再改这里。
其它方面需要注意的是Bootloader里面MA35D1 PMIC Select,电源管理芯片配置,官方默认开启的,如果你的硬件不带这个,得关闭,不然会有问题,另外一个是Board_defconfig,env环境变量存放地址,官方默认ma35d1_sdcard0,如果是你的硬件是sdcard1,则更改,不然内核启动后会挂载不了文件系统,其余配置Target packages--->Graphic libraries and applications (graphic/text)--->Qt5--->开启需要的Qt功能。
最后,sudo make all,不出意外编译一个多小时能成功,编译成功后可烧录文件在output/images中。
3、上面使用官方buildroot的编译器来编译的qt,其实已经自带了一个qmake,具体地址在output/build/qt5base-5.15.2/bin,但是这个qmake在我配置Qt开发环境的时候,一直报错,没办法我重新下载了qt5.15.2的源码,解压源码后,在根目录里新建一个autoconfig.sh脚本,
#!/bin/sh
./configure \
-prefix /home/zl/qt5_15_buildroot \
-opensource -confirm-license \
-release \
-strip \
-shared \
-xplatform aarch64 \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-recheck-all
在qt-everywhere-src-5.15.2/qtbase/mkspecs里面把linux-aarch64-gnu-g++文件夹复制成aarch64,修改qmake.conf,主要修改的是编译器的绝对地址,使用上面buildroot自带的
#
# qmake configuration for building with aarch64
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM=linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /home/zl/nuvoton/ma35d1/MA35D1_Buildroot-master/output/host/bin/aarch64-nuvoton-linux-gnu-gcc
QMAKE_CXX = /home/zl/nuvoton/ma35d1/MA35D1_Buildroot-master/output/host/bin/aarch64-nuvoton-linux-gnu-g++
QMAKE_LINK = /home/zl/nuvoton/ma35d1/MA35D1_Buildroot-master/output/host/bin/aarch64-nuvoton-linux-gnu-g++
QMAKE_LINK_SHLIB = /home/zl/nuvoton/ma35d1/MA35D1_Buildroot-master/output/host/bin/aarch64-nuvoton-linux-gnu-g++
# modifications to linux.conf
QMAKE_AR = /home/zl/nuvoton/ma35d1/MA35D1_Buildroot-master/output/host/bin/aarch64-nuvoton-linux-gnu-ar cqs
QMAKE_OBJCOPY = /home/zl/nuvoton/ma35d1/MA35D1_Buildroot-master/output/host/bin/aarch64-nuvoton-linux-gnu-objcopy
QMAKE_NM = /home/zl/nuvoton/ma35d1/MA35D1_Buildroot-master/output/host/bin/aarch64-nuvoton-linux-gnu-nm -P
QMAKE_STRIP = /home/zl/nuvoton/ma35d1/MA35D1_Buildroot-master/output/host/bin/aarch64-nuvoton-linux-gnu-strip
最后,make all -j6,make install,在/home/zl/qt5_15_buildroot/bin里面会有一个新的qmake,这个qmake可以用来编译qt工程。 {:smile:}{:smile:}{:smile:}{:smile:}{:smile:}
感谢分享!
官方开发板太贵了……买不起开发板…… 关键芯片还没量产出来,现在整这个早了点,越早花时间越多,踩坑越多。 xmlbb 发表于 2023-1-11 14:40
关键芯片还没量产出来,现在整这个早了点,越早花时间越多,踩坑越多。
(引用自4楼)
目前纯linux开发 没有发现什么坑,我想坑可能在多核方面资源共享上,目前官方也没有这方面的资料。 redworlf007 发表于 2023-1-11 14:33
官方开发板太贵了……买不起开发板……
(引用自3楼)
淘宝上的核心板200来块钱,先应急,这个芯片是好芯片,但是内容多,目前资料还是不够健全,开发难度很大的,但是我仔细对比了全志的芯片,资料已经比全志要详细了。 三年模拟 发表于 2023-1-11 15:02
淘宝上的核心板200来块钱,先应急,这个芯片是好芯片,但是内容多,目前资料还是不够健全,开发难度很大 ...
(引用自6楼)
我等等吧,那个开发板太丑了,我看不下去。 三年模拟 发表于 2023-1-11 15:02
淘宝上的核心板200来块钱,先应急,这个芯片是好芯片,但是内容多,目前资料还是不够健全,开发难度很大 ...
(引用自6楼)
请教下,嵌入linux开发和fpga开发哪个入门更容易?mcu软硬件经验比较多的话,大概需要多长时间 akey3000 发表于 2023-1-11 19:18
请教下,嵌入linux开发和fpga开发哪个入门更容易?mcu软硬件经验比较多的话,大概需要多长时间 ...
(引用自8楼)
fpga入门简单点,软硬件通吃能独立干mcu的活,批量出东西,估计要5年以上吧。 三年模拟 发表于 2023-1-11 20:15
fpga入门简单点,软硬件通吃能独立干mcu的活,批量出东西,估计要5年以上吧。 ...
(引用自9楼)
5年,这么说来fpga比嵌入linux难多了。嵌入linux估计1年就差不多了 目前这芯片的资料已经齐全,楼主可以找新唐代理商获取,包括M4的使用
楼主可以不用劝别人使用这芯片,有一些人不是嫌新唐开发板价格贵,就是嫌这嫌那,如果有些公司连200美元的开发板都嫌贵,还是不要使用新出来的芯片。在去年6月就已经开始在推广MA35D1,现在芯片已经量产可以批量订货,现在咨询MA35D1的人也很多,国内很多企业在使用这款芯片,还有一些欧美企业也在使用。 春风十里 发表于 2023-1-12 12:24
目前这芯片的资料已经齐全,楼主可以找新唐代理商获取,包括M4的使用
楼主可以不用劝别人使用这芯片,有一 ...
(引用自11楼)
个人用户买那个板子太贵了。。。 redworlf007 发表于 2023-1-12 17:53
个人用户买那个板子太贵了。。。
(引用自12楼)
这新出来的芯片不适合个人用户使用,还是先等个一年半载为好 春风十里 发表于 2023-1-12 19:09
这新出来的芯片不适合个人用户使用,还是先等个一年半载为好
(引用自13楼)
我不喜欢代理商那边拿资料,也不需要fae什么的,我一般也是个人研究,但是最后公司都是批量的,我准备拿这个新的芯片做我司医疗设备主控,能跑qt网络can通信的就行了,m4核用来搞单片机那套,总之这个芯片很好,接下来我司买的主力芯片了。 春风十里 发表于 2023-1-12 12:24
目前这芯片的资料已经齐全,楼主可以找新唐代理商获取,包括M4的使用
楼主可以不用劝别人使用这芯片,有一 ...
(引用自11楼)
我元旦之前问新唐的代理,他们说要23 Q1,目前没芯片。
你说的有公司已经量产,我是怀疑的。 三年模拟 发表于 2023-1-12 20:51
我不喜欢代理商那边拿资料,也不需要fae什么的,我一般也是个人研究,但是最后公司都是批量的,我准备拿 ...
(引用自14楼)
楼主聪明勤奋优秀,勇于实践,这个芯片是新唐现在以及以后一段时间主推的芯片 xmlbb 发表于 2023-1-13 10:37
我元旦之前问新唐的代理,他们说要23 Q1,目前没芯片。
你说的有公司已经量产,我是怀疑的。 ...
(引用自15楼)
代理商也是有差异的,你是没有找对人,现在要订货绝对是可以 三年模拟 发表于 2023-1-12 20:51
我不喜欢代理商那边拿资料,也不需要fae什么的,我一般也是个人研究,但是最后公司都是批量的,我准备拿 ...
(引用自14楼)
你用这个芯片因为是有计划用在公司医疗设备产品中,一般使用的问题你肯定可以自己解决,就是在开发使用中如果有遇到一些驱动代码问题而无法个人解决可以联系新唐获得技术支持,望产品开发顺利
页:
[1]