imx6ull开发板使用方式详解 + 源码下载 +编译运行简单程序 + Ubuntu虚拟机使用鸿蒙LiteOs操作系统常见错误汇总

一、imx6ull开发板使用方式详解

首先和大家说明一下,使用imx6ull开发板要求电脑必须有2个USB接口

如果没有2个USB接口,必须上网购买拓展坞,类似下面这种:

使用的时候只需要把2条USB连接线插在电脑或者扩展坞的USB插口上即可(顺序无所谓,如图是扩展坞的示例):

接下来简单介绍USB Serial、OTG接口在开发板中的作用:

USB Serial:主要被用于与电脑进行串行通信,例如传输控制指令或者接收状态信息等。USB Serial主要用于终端的调试输出,比如打印系统启动日志或者应用的调试信息等。

OTG:被用于连接电脑和开发板进行直接的数据交换,例如读取或者写入文件等。

所以两个USB接口缺一不可,USB Serial可以理解为传输指令、状态和调试等的信息,OTG用于读写文件数据,实测少连任意一个USB接口,程序都跑不了。

 

友情提示:具体端口的信息可以在开发板背面查看。

二、MobaXterm终端连接开发板启动程序

连接完USB Serial和OTG后(注意一定要先连通开发板和电脑),进入MobaXterm后点击左上角的Session:

然后选择Serial port(串口),会看到Serial port多了一个,选中。同时记得Speed要选择115200。点击OK:

千万注意要先进入到终端页面,再进行后面的操作:

进入doc_and_source_for_openharmony\IMX6ULL\开发板配套资料\软件\烧写工具\100ask_imx6ull烧写工具v4,选中100ask_imx6ull_flashing_tool_v4.0.exe:

此时可以看到设备已连接,先点击[下载到内存并启动]:

[再次提醒必须要先进入到MobaXterm终端页面,再点击下载到内存并启动],此时会看到串口实时刷出信息:

三、编译鸿蒙LiteOS-a内核

第1步:在Ubuntu中安装开发环境

下面这段代码就是安装tftp,nfs,vim等软件,要注意该脚本只支持Ubuntu-16.04/Ubuntu-18.04。

wget --no-check-certificate -O Configuring_ubuntu.sh https://weidongshan.coding.net/p/DevelopmentEnvConf/d/DevelopmntEnvConf/git/raw/master/Configuring_ubuntu.sh && sudo chmod +x Configuring_ubuntu.sh && sudo ./Configuring_ubuntu.sh

有些同学系统是Ubuntu-20可能会失败,可以通过lsb_release -a代码进行自查:

如何出现./Configuring_ubuntu.sh: {msg:{user_not_login:用户未登录},data:{account_type:0},code:1000}: not found,可以参考第三部分的问题2。

出现下面界面是正常的,选择1:

第2步:配置GIT与REPO

首先要配置GIT客户端的信息:

git config --global user.name "100ask"
git config --global user.email "[email protected]"
git config --global credential.helper store

因为后面要从gitee上下载东西,需要设置必要的登录信息,模拟人为登录。

git config --global user.name "100ask"用于设置登录用户名。

git config --global user.email "[email protected]"用于设置登录邮箱。

git config --global credential.helper store用来设置 Git 的全局配置,它让 Git 在下次用户需要输入用户名和密码时,将它们存储在硬盘上,以便下次进行认证时可以自动填充,这样就不用每次操作 Git 时都输入用户名和密码了。

然后下载REPO:

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > repo
sudo cp repo /usr/local/bin/repo && sudo chmod a+x /usr/local/bin/repo
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > repo 这个命令的目的是下载一个 Python 3 版本的 repo 工具。 

sudo cp repo /usr/local/bin/repo && sudo chmod a+x /usr/local/bin/repo 这个命令将下载的 repo 文件复制到/usr/local/bin/目录下,使得可以在任何地方通过输入 repo 来调用这个工具。

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests 这是一个 pip 命令,用来安装 Python 的 requests 库。这里使用了清华大学提供的 PyPI 镜像,可以加速在中国大陆的下载速度。

第3步:下载liteos源码

先进入book目录,git clone命令会将gitee上的doc_and_source_for_openharmony文件下载下来,这个其实是个学习资料的文件夹。

cd /home/book
git clone https://e.coding.net/weidongshan/openharmony/doc_and_source_for_openharmony.git

接下来正式下载源码:

mkdir openharmony
cd openharmony/
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-1.0
repo sync -c -j8

mkdir openharmony 是在/home/book下创建一个名为openharmony的文件夹用于存放代码。

repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-1.0 这段代码是从gitee仓库上初始化OpenHarmony-1.0的代码。

现在大家植入一个意识,其实https://gitee.com/openharmony/manifest链接是可以访问的。同时OpenHarmony的源码版本也不止一个1.0,现在已经出了4.0。

repo sync -c -j8 执行完这段代码才真正开始下载仓库里的源码。

第4步:打补丁

补丁在/home/book/doc_and_source_for_openharmony\IMX6ULL\source\01_文档配套的源码\patch下,名为openharmony_100ask_v1.2.patch,可以直接cp到/home/book目录下,在此不过多赘述。

在/home/book/openharmony目录下是鸿蒙的源码,补丁文件openharmony_100ask_v1.2.patch放在/home/book目录下,输入下面代码打补丁:

cd  /home/book/openharmony
patch -p1 < /home/book/openharmony_100ask_v1.2.patch

第5步:编译内核

cd  /home/book/openharmony/kernel/liteos_a
cp  tools/build/config/debug/imx6ull_clang.config .config   
make clean      
make  -j  8     
make  rootfs    
cp  out/imx6ull/rootfs.img out/imx6ull/rootfs.jffs2 

首先要进入/home/book/openharmony/kernel/liteos_a下,然后将tools/build/config/debug/imx6ull_clang.config移动到当前目录下,更名为.config的文件。

make clean 先清除一下,否则会提示错误。

make  -j  8 编译内核,可以得到out/imx6ull/liteos.bin。注意在这一步很多人会遇到make: WARNING:Set: Command not found的问题,此时可以参考第三部分问题1。

make  rootfs 编译根文件系统,可以得到rootfs.img。

cp  out/imx6ull/rootfs.img out/imx6ull/rootfs.jffs2 这纯粹就是改个名,方便辨认,后面会知道,烧写工具使用rootfs.jffs2文件。

第6步:下载运行

注意:要把生成的.bin文件和.jffs2文件放置到你自己本地机的烧写工具的files目录下,这样开发板才能运行。

要注意:开发板必须运行在你本机上,而不能运行在虚拟机上。

烧写工具的files目录在doc_and_source_for_openharmony\IMX6ULL\开发板配套资料\软件\烧写工具\100ask_imx6ull烧写工具v4\files下:

首先打开虚拟机的imx6ull目录,找到liteos.bin和rootfs.jffs2文件:

然后直接拖动文件到目标文件夹即可:

可以看到文件被复制到了目标目录:

在运行烧写工具和MobaXterm(参考前面的第二节)后,输入下面代码,即可输出结果:

./bin/hello

四、Ubuntu虚拟机使用鸿蒙LiteOs操作系统常见错误汇总

问题1:make: WARNING:Set: Command not found

问题描述:使用百问网的教程,在鸿蒙LiteOs中输入make -j 8编译内核的时候出现make: WARNING:Set: Command not found的错误,这个问题困扰了我3天,重装了9次ubuntu系统也没有解决:

最后发现有3种解决方法:

方法1(成功率最高):等到先打完补丁之后,重新再去运行前面配置环境的代码

运行下面配置环境的代码:

亲测这种方法能够有90%的把握解决前面的问题。如果问题解决了【帮忙点赞+收藏一下吧】

我就是通过方法1成功编译内核的:

方法2:直接使用百问网提供的虚拟机,再结合方法1的操作!!结合方法1的操作!据反馈能解决99%的问题。

03_100ask_imx6ull_mini_2022.08_免费高速下载|百度网盘-分享无限制 (baidu.com)

03_100ask_imx6ull_mini_2022.08/02_开发工具/100ask-vmware_ubuntu18.04下下载压缩包。

文件略微有点大,如果下载不便,可【点赞+收藏后私信我领取】

下载后的ubuntu文件包含有Ubuntu 18.04.2(64bit.vmdk),如下图:

可直接通过虚拟机打开:

选择下面ubuntu 18.04_x64.vmx文件打开:

方法3:找完成的同学clone虚拟机。如果尝试过上面2种方法也不能解决,那还是找已经成功的同学克隆复制虚拟机吧。

等所有步骤操作完之后会有下面2个文件:

问题2:./Configuring_ubuntu.sh: {msg:{user_not_login:用户未登录},data:{account_type:0},code:1000}: not found

问题描述:输入./Configuring_ubuntu.sh后出现上面的报错

解决方法:

rm -rf DevelopmentEnvConf 
git clone  https://e.coding.net/weidongshan/DevelopmentEnvConf.git
cd  DevelopmentEnvConf 
sudo ./Configuring_ubuntu.sh

【如果有效记得点赞+收藏哟,方便下次查看】

问题3:Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) Unable to lock the administration directory

问题描述:当用apt-get命令下载的时候,会提示进程被占用的信息。查找网上的资料有说用下面2条命令能解决:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

但我尝试后不能解决,研究了半小时找到了解决方法: 

解决方法: 

先进入文件夹,点击Other Locations

按照下面的方式进入var/lib/dpkg目录:

   

看到lock文件,我们手动删除它:

右键空白地方,选择打开终端:

输入下面代码就删除成功了,现在应该就不存在占用问题了!

【如果有效的话点个赞吧,摸索了好久才解决的】

问题4:fatal error 'stdio.h' file not found

问题描述:使用make编译文件的时候报错,显示stdio.h等头文件没找到

问题分析:一般是配置问题,导致编译器gcc找不到头文件的配置,我们一般有2种解决方法:

解决方案: 

首先我们输入如下代码,用于查找stdio.h文件在哪个位置,可以替换头文件名:

find /home/book/openharmony/prebuilts/lite/sysroot/ -name stdio.h

 如下是返回的文件路径:一般是在这个路径下: /home/book/openharmony/prebuilts/lite/sysroot/usr/include/arm-liteos

 

然后输入下面的代码进行编译即可: 

clang -target arm-liteos --sysroot=/home/book/openharmony/prebuilts/lite/sysroot/ -I/home/book/openharmony/prebuilts/lite/sysroot/usr/include/arm-liteos/ -o hello hello.c

-I 是一个编译器选项,用于告诉编译器在哪里查找头文件。 下面这段代码告诉编译器在 /home/book/openharmony/prebuilts/lite/sysroot/usr/include/arm-liteos/ 这个目录下查找头文件。 

可以上面的代码修改后放在同级的Makefile文件里:

可以看到默认是不带头文件路径的。

代码如下图,注意要把上面$@ $^那些代码改掉,否则会出现目标架构不兼容的问题:

第2种方法:就是直接更改gcc的配置,使其扫描到头文件所在的位置,这个危险性比较大,且不够灵活,可能因为写错部分字符导致其它文件也不能编译,推荐大家慎用哈~

——————————————————————

1. 接口:接口默认被public abstract修饰,抽象方法无方法体,被default和static修饰的方法必须有方法体。抽象方法不可以有方法体。

2. 执行父类的静态代码块,执行子类的静态代码块,执行父类的构造代码块,执行父类的构造函数,执行子类的构造代码块,执行子类的构造函数

3. 线程生命周期5种状态:初始态,就绪态,运行态,阻塞态,死亡态。

4.

猜你喜欢

转载自blog.csdn.net/RuanFun/article/details/133892894