闪闪闪ssss

简介: 闪闪闪ssss

9.编程前的准备工作


9.1 使用GIT下载教程源码


下载到Windows中,再用FileZilla上传到Ubuntu;也可以在Ubuntu下用GIT直接下载。

在Windows下启动“Git bash”后执行以下命令:

$ git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git


在Ubuntu下打开终端后,可以直接执行如下命令。

book@100ask:~$ git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git


下载成功后,将会得到一个名为“01_all_series_quickstart”的目录,里面含有源码,操作示例如下图所示。

1670750670709.jpg


9.2 使用repo获取内核及工具链等


源码的获取方法有2种:本地拷贝、在线下载。这2种方法请选择1种,不要同时选择2种方法。强烈建议使用在线下载,这种方式得到的源码肯定是最新的。


9.2.1 本地拷贝(待更新)


9.2.2 在线下载


100ask_imx6ull开发板的所有代码都是保存在git站点上通过repo命令进行统一管理,可以通过如下命令进行下载或同步。


9.2.3 配置repo


下载repo工具前需要设置git的邮箱和用户名,git邮箱和用户名请根据个人情况进行配置。

book@100ask:~$ git config --global user.email "user@100ask.com"
book@100ask:~$ git config --global user.name "100ask"


注意: 请先配置git邮箱和用户名,否则会导致下载失败(如下为参考示例图)。

1670750752345.jpg


9.2.4 下载源码


通过repo管理多个git仓库中的源码,可以及时更新最新代码,以方便开发者学习使用。

对于不同版本的IMX6ULL开发板,要执行不同的命令下载源码。


IMX6ULL MINI EMMC版

执行以下4条命令,为方便大家复制,第3条是很长的命令,使用了\来换行,需要一并拷贝:

book@100ask:~$  git clone https://e.coding.net/codebug8/repo.git
book@100ask:~$ mkdir -p 100ask_imx6ull_mini-sdk && cd 100ask_imx6ull_mini-sdk
book@100ask:~/100ask_imx6ull_mini-sdk$  ../repo/repo init \
 -u  https://gitee.com/weidongshan/manifests.git -b linux-sdk \
 -m imx6ull/100ask_imx6ull_mini_linux4.9.88_release.xml  --no-repo-verify
book@100ask:~/100ask_imx6ull_mini-sdk$  ../repo/repo sync -j4


注意:下载成功后,可以看到名为Linux-4.9.88的目录,可以在Ubuntu压缩它,再传回Windows。

在Windows下解压后,用source insight建立工程,这样就可以很方便地阅读源码了。


Ubuntu下压缩命令为(最好是下载之后马上压缩,不要编译内核后再压缩,否则文件太大了):

tar  cjf Linux-4.9.88.tar.bz2  Linux-4.9.88

以下截图是下载IMX6ULL版源码的过程:


1670750817670.jpg


首次下载如果提示 Testing colorized output (for ‘repo diff’, ‘repo status’): 此时输入 y 即可,继续执行 …/repo/repo sync -j4 命令即可开始同步源码(同步代码根据网络情况需要等待数分钟)。

下图为参考示例。

1670750826345.jpg

1670750840700.jpg

同步完成后如下图所示

1670750851022.jpg


注意:repo在线下载的代码和网盘配套资料中的代码是一致的,会每隔一段时间更新一次源码包,如使用在线方式获取源码 可以直接在 ~/100ask_imx6ull-sdk 目录下执行 …/repo/repo sync -c进行同步更新最新代码!


9.3 配置交叉编译工具链


注意:使用我们提供的Ubuntu映象文件时,请按照我们的目录结构,手动设置交叉编译工具链以及编译的架构环境变量配置,(建议配置为永久生效)。


9.3.1 设置交叉编译工具链


交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。

设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。

在本文档中,源码、交叉编译工具链都是存放于/home/book目录下;如果你的目录不一样,请自行修改本节所讲述的命令。

设置这3个环境变量有多种方法,任意选择其中一种方法即可,建议使用“永久生效”的方法。


9.3.1.1 永久生效


如需永久修改,请修改用户配置文件。

注意:如果不会使用vim命令,可以使用图形化的编辑工具,执行:

gedit  ~/.bashrc
vim  ~/.bashrc


在行尾添加或修改,加上下面几行(第3行第4行为一行命令):

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull_mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin


设置完毕后,要执行 source ~/.bashrc 命令使其生效,并通过arm-buildroot-linux-

gnueabihf-gcc -v 命令来验证是否配置成功。
book@100ask:~$ source  ~/.bashrc
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v


以上操作是设置IMX6ULL Pro版工具链的过程,mini的操作与它类似。


9.3.1.2 临时生效


也可以手工执行“export”命令设置环境变量,该设置只对当前终端有效(另开一个终端需要再次设置)。


执行以下3个命令,第3个命令很长,需要包含第四行全部复制:

book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull_mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin


9.3.1.3 手动指定


先设置PATH环境变量,然后在make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链(执行make命令时指定的参数,只对当前命令有效;下次执行make时仍需要再次指定那些参数)。


示例如下,第1条命令很长,这里使用小字体方便大家复制:

book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull_mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
book@100ask:~$ make  ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf-


9.3.2 测试交叉编译工具链


9.3.2.1 测试环境变量:


book@100ask:~$ echo $ARCH
arm
book@100ask:~$ echo $CROSS_COMPILE
arm-buildroot-linux-gnueabihf-


9.3.2.2 测试交叉编译器:


执行以下命令,结果见后图:

book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v

1670750982041.jpg

相关文章
【QT】创建、打开QT项目只显示.pro文件的问题解决
【QT】创建、打开QT项目只显示.pro文件的问题解决
3950 0
|
开发工具 git 测试技术
Feature Toggle 实践总结
Feature Toggle 实践总结
14167 0
|
12月前
长上下文能取代RAG吗?
【10月更文挑战第28天】本文探讨了检索增强生成(RAG)和长上下文(LC)在大型语言模型(LLMs)中的应用。RAG通过检索外部信息扩展LLM的知识范围,而LC则直接处理长文本。研究发现,LC在性能上通常优于RAG,但在处理超过模型上下文窗口的文本时,RAG表现出优势。此外,RAG在成本上更具优势。基于此,作者提出了Self-Route方法,结合RAG和LC的优点,实现性能和成本的最佳平衡。
164 7
|
12月前
|
Web App开发 JavaScript 测试技术
Playwright 测试夹具
Playwright 测试夹具
147 1
|
JavaScript
【接地气】真正一口气讲清楚了Vue事件修饰符.once、.prevent、.stop、.capture、.self、.passive、.exac、.native的作用
【接地气】真正一口气讲清楚了Vue事件修饰符.once、.prevent、.stop、.capture、.self、.passive、.exac、.native的作用
【接地气】真正一口气讲清楚了Vue事件修饰符.once、.prevent、.stop、.capture、.self、.passive、.exac、.native的作用
|
云安全 域名解析 网络协议
【云安全中心】Linux 更新软件-域名解析失败
【云安全中心】Linux 更新软件-域名解析失败
5833 0
【云安全中心】Linux 更新软件-域名解析失败
|
人工智能 算法 搜索推荐
选择智能工单系统的理由,功能与效益分析
智能工单管理系统利用数字化技术,帮助企业高效接收、分配和解决客户请求,具备多渠道接收、智能分配和自动化处理等功能。通过实时响应、数据分析和协作工具,系统显著提升服务质量和效率,优化客户体验,成为企业提升竞争力的关键工具。Zoho Desk等系统表现尤为突出,支持多种渠道和服务功能,助力企业实现高效管理。
302 1
|
开发框架 持续交付 项目管理
敏捷项目管理:Scrum框架详解
【8月更文挑战第19天】Scrum作为一种轻量级、灵活的敏捷开发框架,为软件开发项目提供了一种高效、灵活的管理方式。通过明确的核心概念、角色、活动和工件,Scrum帮助团队快速响应变化、持续交付价值,并提升团队协作和自组织能力。然而,成功实施Scrum也面临一些挑战,如沟通成本、文档缺失以及技能要求等。因此,在采用Scrum框架时,团队需要充分准备,确保成员具备必要的技能和态度,以充分发挥Scrum的优势,实现项目的成功。
|
JavaScript 前端开发 API
Vue3 中 setup 语法糖做了哪些骚操作?
Vue3 中 setup 语法糖做了哪些骚操作?
|
机器学习/深度学习 算法 数据挖掘
统计分析识别和处理异常值
统计分析识别和处理异常值
476 0