当前位置:网站首页>登堂入室之soc开发环境及硬件开发准备

登堂入室之soc开发环境及硬件开发准备

2022-06-10 20:26:00 guangod

自已之前接触到的linux开发板,应该是2014年购买的友善之臂的210,当时也是花了不少钱,但也一直没用上,也没什么项目可做。这次项目是基于一个soc的,所以就先从这个芯片开发环境入手了解下。

关于开发前的ubuntu使用,自己在2019时,已经使用过一段时间了,所以不陌生。但没有在上面开发过程序。自己的电脑也本来就是双系统的。所以就不像公司之前的项目一样,还要安装什么vm ware,还要在windown下安装linux虚拟机。

ubuntu开发环境安装

vsftp

ubuntu与windows做交互的,相互传文件(windowns端需要安装一个ftp工具,像file zilla,虚拟机安装的ubuntu本身就相当于一台电脑可以设置自己的网络ip,通过这个ip,windowns与ubuntu间就可以相互传文件了。)。做网络传输的,由于本身就是基于Linux ubuntu开发,所以这个暂时不用安也可以。

终端执行,sudo apt-get install vsftpd

同时要启动一下,执行:/etc/init.d/vsftpd restart,然后在windows端启动ftp工具,就可以看到ubuntu下的文件。

安装好这个工具后,同时按ctrl+alt,就可以方便的切出到windows

安装vim

脚本终端的编辑器,用来发命令的。这个之前玩ubuntu时,也应该安装上了。

终端执行:

sudo apt-get purge vim common
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim

安装gcc及g++

终端执行gcc -v;默认ubuntu是自带的。
终端执行g++ -v;默认也是自带的。

如果没装的话,就执行sudo apt-get install g++//编译c++程序,
sudo apt-get install gcc//编译c程序

安装vscode

用来编写代码的,已经安装好了。有三种安装方式:

  1. sudo dpkg -i 安装包名称.deb(这个是linux下安装包格式)

  2. make make install,下载源码形式

  3. apt-get ,网络安装方式,类似于手机。

安装git

用来git代码和管理。

执行sudo apt-get git

硬件开发准备

拿到手后,一般硬件上像全志或齐感的SOC芯片的linux操作系统已经安装好了,一般是OS装到了TF卡里面。先上电,等待系统启动后,再插USB调试端口还有以太网或手机卡。

装串口驱动

windows下就是装ch340或其他驱动,ubuntu下就是安装相应的驱动。

然后安装与板子交互的工具如moba或Xbell,通过串口连接到板子上串口,就可以交互了。

装以太网驱动

单片机一般通过jlink或stlink来下载程序,但linux很多时候都是通过以太网来下载或调试程序。

通过scp 文件 [email protected]板子IP,来将文件传到板子上的linux.

做系统固件(也可以跳过)

常规的就是准备TF卡读卡器,然后将tf卡变成启动盘。然后把linux烧录到 外置的flash里面就可以了。

补充

查看系统版本

执行:uname -a

安装软件时会遇到无法获得资源,是否有其他资源正在占用问题,如sudo apt-get install 提示不可用

这时表示要进行软件的一个升级。需要执行以下两步。

sudo apt-get update//更新资源
sudo apt-get  upgrade//更新软件

板子端开发环境搭建

实现过程:先在pc端编写好程序,通过交叉编译工具,下载到板子端运行。

交叉编译器

通过它可以生成在arm端可运行的程序,然后拷贝到arm上的linux系统里,然后通过串口与板子交互,发送运行这个程序的命令,就可以看到板子上的linux在执行这个程序了。

选定交叉编译环境

pwd:显示相关目录的路径.,建立一个路径:sudo mkdir -p /home/guangod/qgsdk/buildroot
注:删除一个路径:sudo rmdir -p /home/guangod/qgsdk/buildroot

实例

Tina Linux是基于 openwrt-14.07 的版本的软件开发包。而openwrt是一个开源的嵌入式linux自动构建框架,由makefile和kconfig构成。

开发流程

检查系统需求

只支持ubuntu操作系统下的编译。

搭建编译环境

开发机器需要安装的各种软件包和工具

选择设备

在编译源码前,开发者需要先导出预定义环境变量,然后根据开发者根据的需求,选择对应的硬件板型.

系统定制

开发者可以根据使用的硬件板子、产品定义,定制 U-Boot、Kernel 及 Openwrt

编译与打包

完成设备选择、系统定制之后执行编译命令,包括整体或模块编
译以及编译清理等工作,进一步的,将生成的 boot/内核二进制文件、根文件
系统、按照一定格式打包成固件。

烧录并运行

继生成镜像文件后,将介绍如何烧录镜像并运行在硬件设备。

主机编译环境搭建(对应的就是ubuntu开发环境安装)

ubuntu作为编译服务器,通过usb或串口与开发板相连,可将编译后的镜像文件烧写到目标硬件板,并调试程序。

需要安装gcc, binutils, bzip2,flex, python, perl, make,ia32-libs, find, grep, diff, unzip, gawk, getopt, subversion, libzdev, libc headers.
或直接输入命令:
sudo apt-get install build-essential subversion git libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip ia32-libs-y

实际操作时,无论是一个个输安装命令还是其他一块安装的方式,都会出现无法定位软件包的问题???
原因为:复制时的斜杠为全角,输一遍半角,就可以直接安装上了.

出现无法定位软件包 ia32-libs-y的问题?

安装替代安装包:sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386

stack overflow上的答案:

sudo -i
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs

烧录软件安装

路径为:/media/guangod/娱乐盘/QiganCenter/software/tools/aw_tools/.
使用./LiveSuit.run运行时提示没有dkms?

解决没有dkms问题?

dkms是一个内核模块管理工具.
刚开始选的几个发布源,确这是没有这个的,后来经过同事指点,在百度上搜dkms安装包,发现在ubuntu 官网上就有这个包,重新在"软件和更新"选择ubuntu官方的发布源,再执行sudo atp-get install dkms,好了,安装上了.

使用

先输入命令:cd ~/Bin/LiveSuit

然后输入:./LiveSuit.sh

执行过程中出现 “error while loading shared libraries: libpng12.so.0 : cannot open shared object file: No such file or directory”??

Launchpad.net 这个安装包,直接安装上即可.

原网站

版权声明
本文为[guangod]所创,转载请带上原文链接,感谢
https://blog.csdn.net/guangod/article/details/125214470