20届极速光电龙芯组别学习过程


这里是20届极速光电龙芯组别,记录分享自己学习龙芯的过程。
已完结。
这边贴一下我参考到的文章与视频:

  1. 龙芯2K0300开发笔记(新手向:到点灯和视频图像颜色识别处理)
  2. 龙芯2K0300久久派使用培训(自用)
  3. i佬的GitHub
  4. 久久派论坛
  5. 零炻佬的【新手向】久久派串口及网线连接
  6. 嵌入式linux学习之opencv交叉编译/移植并使用CmakeList编译demo
  7. 基于虚拟机的Ubuntu网络连接解决方案
  8. 司败的man佬的【20届智能车】龙芯组别个人分享(面向新手环境搭建)(jomi强烈推荐)

如果我写的不清楚或者有误的,大家可以去看看这些文章和视频。欢迎大家在评论区指正我的错误!
所有内容都是自己写的,审核员别再不给通过了

前期安装与搭建环境部分

一、安装Vmware虚拟机

VMware安装教程 建议下载最新版本。

二、安装Ubuntu系统

安装ubuntu系统需要镜像文件:

通过网盘分享的文件:ubuntu-20.04.6-desktop-amd64.iso
链接: https://pan.baidu.com/s/10GDK_vUaVACS9hVurUH5ww?pwd=vp9g 提取码: vp9g
–来自百度网盘超级会员v2的分享

打开刚刚安装好的vmware,点击新建虚拟机,接下来跟着我的步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里还是建议最大磁盘大小比20G大一点,后期血的教训,,,
在这里插入图片描述
点击自定义硬件,修改一下配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击关闭,再点击完成,小小的等待一下,就安装好Ubuntu系统啦!

注意:如果WiFi连不上(wifi图表):

1.sudo service network-manager stop
2.sudo rm /var/lib/NetworkManager/NetworkManager.state
3.sudo service network-manager start
4.再将网络适配器改成桥接模式或者NAT模式
5.sudo service network-manager start

这样就能连上网络啦!

三、安装Vmware tools、gcc和vim

1.安装VMware tools

安装VMware tools是为了让虚拟机和物理主机之间可以共享剪贴板,支持复制和粘贴文本、文件等。
在虚拟机中打开终端,输入以下命令:

sudo apt-get update #用于更新ubuntu上的软件源,每次安装其他东西之前最好都先执行以下此命令
sudo apt-get install open-vm-tools-desktop

小提示:如果在你输入密码的时候屏幕上不显示,是正常现象!输入完按Enter键即可。

2.安装vim和小小使用一下vim

vim是命令行的文本编辑器的工具。
在桌面打开终端输入以下命令安装vim:

sudo apt-get install vim

小提示:中间遇到[Y/n]的 输入Y或者按Enter键。

如何使用vim呢?

输入以下命令:

mkdir code #创建code文件夹用于存放一些自己写的小小代码
cd code #进入code文件夹
vim main.c #创建并编辑main.c

这时候你会进入main.c的编辑界面,按下A键,就可以开始编辑了!
在这里插入图片描述
输入以下示例内容:
在这里插入图片描述

输入完后,先按esc键,接着shift+: ,输入wq,即可退出编辑界面;
输入cat main.c命令即可查看文件内容。
在这里插入图片描述

3.安装gcc

gcc编译器是在Linux操作系统里将一个C语言代码编译成一个可执行文件的工具。

输入以下命令安装gcc:

sudo apt-get install gcc

gcc最常用命令:

-o FILE #生成指定输出文件FILE

让我们来使用一下:

gcc main.c -o main

这样就编译好我们刚刚写的main.c文件了。(-o后面的文件名为了好区分,最好和前面的文件名一致并把.c删除,例如刚刚的示例,最好命名成main,但不能命名为main.c,即不能重复)

如何运行main.c文件?

chmod 777 main #赋予其可执行权限
./main

在这里插入图片描述

成功运行!

我们输入以下命令查看main文件的属性:

file main

在这里插入图片描述

可以看见这是一个x86-64的文件属性;

四、龙芯交叉编译环境安装及运行

刚刚我们使用gcc对main.c文件进行了本地编译,当程序写的越来越复杂时,需要通过交叉编译好的代码放到开发板里去用。

现在我们要做的是在虚拟机里面也就是x86的平台上去编写程序并编译成能运行在龙芯架构的程序,而编译得到的程序在x86平台上是不能运行的,必须放到龙芯平台上才能运行。

通过网盘分享的文件:loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.4 (1).tar.xz
链接: https://pan.baidu.com/s/1srZ7ri9UhLNvQgQ5HMMnuw 提取码: q9nm

首先,将下载好的压缩包复制粘贴到虚拟机桌面上,输入**tar -xvf loongson…(压缩包名字)**进行解压;
在这里插入图片描述
尽量把解压完的文件放在opt(存放软件工具)目录下面:

sudo mv loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.4 /opt/

接着指定路径,并复制粘贴到bashrc中,完成交叉编译环境配置。跟着步骤来:

  1. cd /opt/
  2. cd loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.4/
  3. cd bin/
  4. pwd

在这里插入图片描述
复制/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.4/bin
进入资源配置界面:

vim ~/.bashrc

在最下面添加刚才复制的:

export PATH=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.4/bin:$PATH

在这里插入图片描述

保存退出后,再输入以下命令保证生效:

source ~/.bashrc

这样,交叉编译工具链就搭建完成了!

用交叉编译工具链把main.c文件编译一下(在code文件夹中打开终端):

loongarch64-linux-gnu-gcc main.c -o main

查看文件属性,发现Ubuntu系统不认识龙芯架构(loongarch),这个不影响,不过这也间接说明我们交叉编译成功啦!
在这里插入图片描述

五、MobalXterm软件的使用

接着,我们将交叉编译好的main文件传到久久派去使用。
先将编译好的main文件复制粘贴到Windows桌面上;
接下来,我们要用到MobalXterm这个软件来连接我们的久久派开发板。

我选用的是网线直连电脑方案让久久派串口及网线连接(如果是交换机连接方案,去看开头我贴的零炻佬的视频)。首先,我们需要准备一根网线,一个USB转TTL,杜邦线若干。如果你的电脑不能直接插网线,你还需要准备一个USB网线转接口。
在这里插入图片描述
这是久久派IO口定义表,我给你们贴出来了,其实久久派开发板的背面也有丝印。

准备四根杜邦线,USB转TTL上的TXD接久久派上的RXD,也就是四号引脚;RXD接TXD(6号引脚);GND接GND(1/19/20/29);5V接5V(30号引脚);(也可以3.3V接3.3V,然后板子上预留的type-c口接5V)反正给久久派供上电后久久派只有两颗灯亮就是正确的。
像这样:
在这里插入图片描述
下面,我们来进行网路连接。

打开控制面板,跟着我的步骤来:

  1. 进入网络和Internet
  2. 进入网络和共享中心
  3. 点击本电脑连接的网络
  4. 点击属性
  5. 点击共享
  6. 勾选允许其他网络用户通过此计算机的Internet连接来连接(若已经勾选,取消勾选,点击确定,再重新勾选一下
    在这里插入图片描述
  7. 点击详细信息,看到IPv4地址为192.168开头
  8. 退出,点击以太网,点击详细信息,看到IPv4地址也为192.168开头,并且下图的已接收不是0说明共享完成
    在这里插入图片描述

如果是交换机连接,还是去看零炻佬的视频。

下载MobalXterm:

通过网盘分享的文件:MobaXterm_Portable_v24.3.zip
链接: https://pan.baidu.com/s/10RYsNzUZFbJQ0vPV4-aahA?pwd=yeh7 提取码: yeh7
–来自百度网盘超级会员v2的分享

现在,打开MobalXterm:

  1. 点击左上角的Session
  2. 点击Sreial
  3. 按照下图所示来新建串口
    在这里插入图片描述
  4. 点击OK即可(如果进入的界面不是下图所示,重新来一遍上述步骤)
    在这里插入图片描述
  5. 输入root,就可以登录到开发板里面了。
  6. 输入ifconfig,就可以看到板子现在的ip地址。
  7. 再点击Session,点击 SSH
  8. 按照下图所示来配置:
    在这里插入图片描述
  9. 点击OK即可。
  10. 将之前粘贴到桌面上的main文件拖到文件树里
  11. 输入以下命令:

chmod 777 main
./main

在这里插入图片描述
我们完成了将一个C语言文件交叉编译后放到久久派开发板里去运行!

六、内核编译

pmon非特殊情况不要修改它。
这里给i佬的内核源码:

通过网盘分享的文件:LS2K0300-linux-4.19-main.zip
链接: https://pan.baidu.com/s/1eW-6aD2B3qUNsFg2QJIrPg?pwd=ywx9 提取码: ywx9
–来自百度网盘超级会员v2的分享

小提示:zip后缀的压缩包解压命令:unzip (某压缩包)

还是将文件复制粘贴到虚拟机桌面上;
输入以下命令进行编译内核的依赖库安装:

sudo apt-get update
sudo apt-get install libncurses5-dev #用于配置界面
sudo apt-get install libssl-dev
sudo apt-get install build-essential #包含编译工具集
sudo apt-get install flex #用于处理 lex 的语法分析
sudo apt-get install bison #用于处理 yacc 的语法分析
sudo apt-get install openssl

接着打开内核源码的文件夹,打开终端,输入以下命令:

  1. cp arch/loongarch/configs/loongson_2k300_defconfig .config #采用2k300的配置文件
  2. sudo apt-get install make
  3. make menuconfig ARCH=loongarch
  4. 进入界面后按照下图打开一下USB摄像头:(按y键或空格键变“ * ”号,按上下键移动光标,左右键移动最下面的选项
    在这里插入图片描述
  5. 别急着退出,在Device Drivers目录下打开Pulse-Width Modulation(PWM)Support,把最后两个选上
    在这里插入图片描述
  6. sudo make vmlinuz ARCH=loongarch CROSS_COMPILE=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.4/bin/loongarch64-linux-gnu- -j 4
  7. vim ./cmd.sh 把路径换成自己的交叉编译工具链路径
    在这里插入图片描述
  8. ./cmd.sh

注意:如果大家想要加上adc的功能,也需要在内核里添加文件,这里贴上龙邱的视频教程:20届智能车竞赛|龙芯久久派学习教程九( ADC功能)

内核编译完成!
记得把编译好的vmlinuz文件拖mobalxterm里!
然后输入以下指令确保新的内核生效:

  1. sync #确保所有数据都已安全写入磁盘
  2. reboot #重启系统以使新的配置或软件生效

我遇到的几个问题记录:

  1. loongarch64-linux-gnu- -j 4命令找不到,是因为交叉编译工具链的路径没设置对
  2. 找不到vmlinuz,是因为没有在内核源码文件夹里打开终端
  3. 报错:在这里插入图片描述
    把 #include </dt-bindings/pinctrl/ls2k300-pinfunc.h>路径改完整:#include </home/jomii/Desktop/LS2K0300-linux-4.19-main/include//dt-bindings/pinctrl/ls2k300-pinfunc.h>

七、为久久派交叉编译opencv并安装

首先还是将最新版的源代码下载下来并复制粘贴到虚拟机上,大家自行去opencv官网上下载。
进入解压完成的文件夹内,创建一个新的文件夹,把它命名为loongson;进入此文件夹,安装需要用的工具以及安装环境依赖:

mkdir loongson
cd loongson
sudo apt-get install cmake
sudo apt-get install cmake-qt-gui
sudo apt-get install cmake-curses-gui
sudo apt-get install build-essential
sudo apt-get install libopenblas-dev
sudo apt-get install git
sudo apt-get install pkg-config
sudo apt-get install libavcodec-dev
sudo apt-get install libavformat-dev
sudo apt-get install libswscale-dev
sudo apt-get install python-dev
sudo apt-get install python-numpy
sudo apt-get install libtbb2
sudo apt-get install libtbb-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libdc1394-22-dev
sudo apt-get install libv4l-dev
sudo apt-get install liblapacke-dev
sudo apt-get install libopencv-dev

如果大家还需要安装其他的,可以自行去浏览这篇文章:嵌入式linux学习之opencv交叉编译/移植并使用CmakeList编译demo

输入 cmake-gui . . 命令进入cmake界面:

  1. 点击左下角configure
  2. 勾选最后一个,点击next
  3. 根据下图进行填充:(小提示:第二个框里的C和C++文件的路径在你存放交叉编译工具链的文件里)

在这里插入图片描述
上图中右上角的路径别忘了
4. 点击finish,接着右上角的Advanced勾选上,再点击旁边的Add Entry添加一个配置文件:

在这里插入图片描述
手动输入OPENCV_ENABLE_PKG_CONFIG
5. 再次点击configure
6. 找到PKG_CONFIG_EXECUTABLE,把后面的路径改成这样:/usr/share/pkg-config
7. 配置完成,输入make -jn就可以进行编译了(n取决于你有几个核心,我的是make -j2)
8. 执行make install命令,接着打开loongson文件夹,里面的install文件夹就是要复制粘贴到mobalxterm里的
9. 打开mobalxterm,创建opencv文件夹,把install里面的四个文件夹复制粘贴过去。

在这里插入图片描述
10. 接着跟着我的步骤输入以下命令:

  1. cd /etc/
  2. mkdir ld.so.conf.d
  3. cd ld.so.conf.d
  4. touch opencv.conf
  5. vi opencv.conf
  6. 输入/home/root/opencv/lib
  7. ldconfig

没有报错就说明编译成功!

小提示:如果第8步install文件夹复制粘贴不了,可以先将其压缩一下,命令:

tar -czvf install.tar.gz /home/jomii/Desktop/opencv/opencv-4.11.0/loongson

至此,前期安装与搭建环境部分就完成啦!

硬件部分

大家可以去龙邱或者逐飞微信公众号看看必须要买的模块,如USB摄像头、编码器等等。
双驱、拓展板等需要自制,纯小白的话大家可以去b站上看看嘉立创或者ad的使用教程,学习画电路板。
结构部分需要学一学solidworks。

软件部分

一、安装VSCcode

通过网盘分享的文件:code_1.90.2-1718751586_amd64.deb
链接: https://pan.baidu.com/s/1z5qgeg8M45RjEWyv7ulJyQ?pwd=icwm 提取码: icwm
–来自百度网盘超级会员v2的分享

复制粘贴到虚拟机桌面上后打开终端输入以下命令进行安装:

sudo dpkg -i code_1.90.2-1718751586_amd64.deb

从终端启用vscode,输入code命令即可。

如何使用中文输入法?
跟着以下步骤来:

  1. 打开左下角的应用程序菜单,找到setting(设置),点击Region&Language,点击Manage Installed Languages
    在这里插入图片描述
  2. 如果弹出下面这个窗口,单击窗口中的 Install,然后等待安装完毕
    在这里插入图片描述
  3. 点击Install/Remove Languages… ,勾选Chinese(simplified),点击Apply,稍等安装完成
    在这里插入图片描述
  4. 点击close,重启虚拟机,接着点击“+”,找到Chinese并点击
    在这里插入图片描述
  5. 点击第一个选项,点击右上角的ADD
    在这里插入图片描述
  6. 中文输入法就添加完成啦,切换中英文:Win+Space(空格)

二、如何把自己写的多个文件一起交叉编译

那么之前说的loongarch64-linux-gnu-gcc main.c -o main这个指令,只适用于编译一个文件,那么要编译多个文件,就需要其他指令了。
那么这里拿我的给大家举例子:
在这里插入图片描述
在写完所有代码之后,在build(一般用于存放项目构建过程中生成的各种文件的目录)目录下打开终端,输入以下指令:

  1. rm -rf * # 删除上一次执行完后产生的指令
  2. cmake -DCMAKE_TOOLCHAIN_FILE=…/cross.cmake … #配置编译环境,并生成相应的构建文件(都是两个点!不知道为什么变成三个点了)
  3. make #生成可执行文件

执行完上述指令后,会生成一个交叉编译好的文件,将其复制粘贴到Windows桌面上,并拖到mobalxterm里;接着和之前一样,

chmod 0777 FILE
./FILE

就可以运行程序啦!

那么前面给大家的说的是有线连接久久派,但是在调试小车的时候,会非常的不方便。所以大家要配置一下无线WiFi,这样车车就可以自己跑了,而不是拖着电脑一起跑。
龙邱科技非常贴心的出了教程,比我之前摸索出来的简单多了,这里贴上视频链接:
20届智能车竞赛|龙芯久久派学习教程十七(开机自启动WIFI以及连接ssh)

最后

个人认为今年的极速光电龙芯组别,在前期配置完环境后,与前几届的镜头组其实很相似,网上图像处理开源的代码有很多,视频教程也很多,大佬们讲的都很好很详细,我在这里就不班门弄斧了。
预祝各位车友都能取得好成绩!
不过看了我的文章,佬们在赛场上就不能薄纱我了呦~

评论 70
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值