交互环境介绍

本文介绍了Linux应用开发过程中与嵌入式板卡交互的必要性,包括交叉编译、调试工具(如gdb和JTAG)、硬件驱动开发,以及如何设置交叉调试环境,如NFS服务和SSH服务。作者强调了内核编译和uboot移植等内容的学习顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在进行Linux应用开发的过程中,往往需要交互工具。和谁交互?当然是嵌入式板卡。

        之前说过Linux开发一般需要交叉编译,我们在平台A上编译能在平台B上用的东西,对于大型工程一次开发完成是不现实的,往往需要调试,而调试需要软件运行,当软件运行在平台B上时,我们操作的平台A该如何对他进行调试呢?就是用交互工具了,也就是交叉调试工具,可以是硬件也可以是网络。

        在此之前先熟悉一些基础概念

嵌入式开发流程

        大致可分为三部分系统开发、硬件开发、软件开发。

        系统开发

        需要对需求进行分析,选择合适的处理器和架构以及系统。我在这方面并不熟悉,我只能接触到很局限的几块板子。

        选型等过程结束后,接下来就是为板卡安装系统,这其中涉及到uboot设计,还需要根据需求裁剪内核,也就是所谓的系统移植。

        以上个人理解,欢迎补充或纠正

        硬件开发

        在一块具备了操作系统的板卡上,还需要进行各类硬件的驱动开发,实现各自硬件的基础功能,这部分往往和系统开发联系紧密。这部分我认为应该作为另一大知识体系单独学习。

        软件开发

        与传统软件一样,存在需求分析,概要设计,详细设计,实现和测试等流程。需求和设计部分暂且不说,软件开发就是两大部分交叉编译和交叉调试。关于交叉编译相关内容之前已经学习过,而交叉调试,其概念便是开篇提到的。

        交叉调试方法,有硬件和软件。

        软件,例如gdb调试器,或者利用串口,网络通信等方法实现

        硬件,则是各种调试器,笔者用过的一种就是JTAG,硬件调试往往功能强大,但价格昂贵。

        交互环境开发

        交叉编译环境已经准备好了,我们还需要准备交叉调试环境,对于就本地开发应用的朋友,可以跳过,也可以看看做个参考。在华清远见的教程中还涉及对内核的编译和uboot相关知识,我个人认为这里是用不上的,这部分应该作为驱动开发的前置知识,所有笔者并没有做笔记。

        可能遇到的错误

        E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

        E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

        我们可以通过重启apt服务或者强制解锁方式,还有别的但这两种是我惯用

        重启apt

sudo systemctl restart apt-daily.service

        强制解锁(推荐,没遇见什么后遗症)

sudo rm /var/lib/dpkg/lock-frontend     //删除锁文件
sudo rm /var/lib/dpkg/lock			    //删除另一个潜在锁(一般用第一个就行)

NFS服务

        安装NFS服务

sudo apt-get install nfs-kernel-server rpcbind

        在用户目录下为nfs创建一个文件夹

        

        配置nfs功能

sudo vi /etc/exports

        在末尾添加

/home/tunx/linux/nfs *(rw,sync,no_root_squash)	//根据实际情况来

        重启nfs功能

sudo /etc/init.d/nfs-kernel-server restart

 SSH服务

开启SSH服务就可以使用shell在Windows下登录ubuntu,首先是安装

sudo apt-get install openssh-server

推荐一篇博客,很全面。

SSH远程连接linux虚拟机详细步骤

最后,关于内核编译,uboot移植等等,我准备等应用开发基础这部分结束了,另做记录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值