Linux驱动开发-01配置开发环境

news2024/12/23 2:06:15

一、配置网络环境

使用桥接网卡时 Ubuntu 就是使用一个真实的网卡 :开发板的网线也连接到这个真实的网卡上,这样 Windows 、 Ubuntu 、开发板就都可以用过这个网卡互通了。

  • NAT 网卡: Ubuntu 通过它上网,只要 Windows 能上网, Ubuntu 就能上网
  • 桥接网卡: Ubuntu 通过它跟开发板联通

 NAT网卡设置

 桥接网卡设置

Ubuntu、电脑、开发板三者之间必须可以ping通

这里作者的开发板和电脑都是直接接在路由器上,三者可以ping通

 二、下载BSP及配置工具链

要确保有以下两个东西

测试交叉编译工具链

//执行以下命令测试环境变量:
book@100ask:~$ echo $ARCH
arm
book@100ask:~$ echo $CROSS_COMPILE
arm-buildroot-linux-gnueabihf-
//确保输入的命令和下面的输出正确

/***********执行以下命令测试工具链***************/
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v

测试结果

 三、配置Windows开发环境

3.1 将Linux源码传输到Windows上

(1)压缩Linux源码

/*压缩Linux源码*/
book@100ask:~/100ask_imx6ull_mini-sdk$ tar cjf Linux-4.9.88.tar.bz2 Linux-4.9.88/

 

(2)使用FileZilla将压缩包传输到Windows上

(ens33就是NAT网卡的ip;密码是123456)

 (3)连接好之后进行移动

 (4)Windows上进行解压

Linux上是区分文件名和大小写的,但是Windows是不区分的

Windows上并不执行Linux上的一些链接文件,可能会出现以下的信息

3.2 使用Source Insight去阅读源码

 (1)为了方便阅读源码对Source Insight进行设置

 (2)建立工程文件

 同步文件这里就是同步函数、定义哪些,相当于建立了一个数据库,方便跳转

3.3 Source Insight使用技巧

  • 按住ctrl可以跳转到定义,alt+逗号(,)可以返回
  • Ctrl+/查找引用它的地方

 四、开发板挂载 Ubuntu 的NFS目录

 我们是通过NFS把Ubuntu下的NFS目录挂载到开发板的/mnt路径下

 进行挂载的命令

//挂载的命令(这里的ip是桥接网卡的ip)
root@ATK-IMX6U:~# mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt

这里的NFS的意思就是说:我们的开发板下的/mnt目录下建立新文件,Ubuntu的NFS目录下也可以马上看到,同理Ubuntu下新建也是一样的

 开发板(在开发板中创建一个1.txt)

root@ATK-IMX6U:~# ls /mnt
driver_projects
root@ATK-IMX6U:~# cd /mnt
root@ATK-IMX6U:/mnt# ls
driver_projects
root@ATK-IMX6U:/mnt# touch 1.txt
root@ATK-IMX6U:/mnt# ls
1.txt  driver_projects
root@ATK-IMX6U:/mnt#

 Ubuntu

 五、开发板挂的第一个应用程序

在Ubuntu中创建一个.c文件并运行它

book@100ask:~/nfs_rootfs$ ls
driver_projects  hello.c
book@100ask:~/nfs_rootfs$ cat hello.c 
#include <stdio.h>
/* 执行命令 : ./hello weidongshan
 * argc = 2
 * argv[0] = ./hello
 * argv[1] = weidongshan
 */
 int main(int argc, char **argv)
 {
    if (argc >= 2)
        printf("Hello, %s! n", argv[1]);
    else
        printf("Hello, world! n");
    return 0;
   }
book@100ask:~/nfs_rootfs$ gcc -o hello hello.c
book@100ask:~/nfs_rootfs$ ls
driver_projects  hello  hello.c
book@100ask:~/nfs_rootfs$ ./hello
Hello, world! n

 因为我们已经挂载了NFS目录,我们的开发板下也有这个.c文件,但是直接运行报错;

因为我们在Ubuntu上面是通过gcc来编译的,这里应该去使用交叉编译链去编译,才能在开发板上执行

 1.在Ubuntu上重新使用交叉编译链进行编译

arm-buildroot-linux-gnueabihf-gcc -o hello hello.c

 2.在开发板上运行

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1843650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea 配置文件中文乱码

再进行springboot项目开发时发现新建的配置文件中文注释乱码&#xff0c;如下: 处理办法: 1、打开idea&#xff0c;在 File 中找到 Settings,如下图 2、搜索 encodings 找到 File Encodings&#xff0c;如下图 3、将上图中圈上的地方全部改为 UTF-8 编码最后点击 Apply 应用即…

鸿蒙Harmony实战—通过登录Demo了解ArkTS

ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义…

信息学奥赛初赛天天练-30CSP-J2022完善程序-结构体构造函数初始化、auto关键字、连通块、洪水填充算法实战

PDF文档公众号回复关键字:20240620 2022 CSP-J 阅读程序2 完善程序 (单选题 &#xff0c;每小题3分&#xff0c;共30分) 2 (洪水填充) 现有用字符标记像素颜色的8 * 8图像。颜色填充操作描述如下&#xff1a;给定起始像素的位置和待填充的颜色&#xff0c;将起始像素和所有可…

山东华素制药有限公司:素心做药,感恩回报

在山东威海这片美丽的土地上,有一颗璀璨的明珠——山东华素制药有限公司。自2013年成立以来,这家企业以其深厚的制药底蕴、卓越的研发实力和坚定的社会责任,赢得了社会各界的广泛赞誉。它不仅是化学药品制剂制造的佼佼者,更是“素心做药,感恩回报”的典范。 一、素心做药,品质为…

Android Compose 文本输入框TextField使用详解

一、 TextField介绍 TextField 允许用户输入和修改文本&#xff0c;也就是文本输入框。 TextField 分为三种&#xff1a; TextField是默认样式OutlinedTextField 是轮廓样式版本BasicTextField 允许用户通过硬件或软件键盘修改文本&#xff0c;但不提供提示或占位符等装饰&a…

【机器学习】机器学习重要方法—— 半监督学习:理论、算法与实践

文章目录 引言第一章 半监督学习的基本概念1.1 什么是半监督学习1.2 半监督学习的优势 第二章 半监督学习的核心算法2.1 自训练&#xff08;Self-Training&#xff09;2.2 协同训练&#xff08;Co-Training&#xff09;2.3 图半监督学习&#xff08;Graph-Based Semi-Supervise…

C++基础知识——命名空间

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;Yan. yan. 文章目录 1、什么是命名空间2、命名空间的作用3、如何定义命名…

总结之LangChain(一)—— 简单使用LangChain

LangChain介绍 LangChain官网&#xff1a;https://python.langchain.com/v0.2/docs/introduction/ LangChain 是一个基于大型语言模型&#xff08;LLM&#xff09;开发应用程序的框架。 LangChain 简化了LLM应用程序生命周期的每个阶段&#xff1a; 开发&#xff1a;使用 L…

JavaSE 利用正则表达式进行本地和网络爬取数据(爬虫)

爬虫 正则表达式的作用 作用1&#xff1a;校验字符串是满足规则 作用2&#xff1a;在一段文本中查找满足需要的内容 本地爬虫和网络爬虫 Pattern类 表示正则表达式 Matter类 文本编译器&#xff0c;作用按照正则表达式的规则去读取字符串&#xff0c;从头开始读取&#xf…

Everything 一款功能强大的搜索工具

要在电脑上使用Everything搜索文件&#xff0c;您需要使用以下步骤&#xff1a; 在您的电脑上下载并安装Everything软件。您可以从官方网站https://www.voidtools.com/downloads/下载最新版本的软件。 安装完成后&#xff0c;打开Everything软件。 在搜索栏中输入您要查找的文…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 连续字母长度(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

手把手教你如何部署自己的One Tool助手

手把手教你如何部署自己的One Tool助手 前言安装教程效果图在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0fc5cb0f451e4c50b55ec850a5517b0c.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/56331f878b9545d5bff6f938c4b317…

uniapp 项目,用HBuilder X在小程序端 运行项目,发布项目

1. 运行项目&#xff08;直接在微信开发者工具中导入项目&#xff0c;运行项目会报错&#xff0c;要通过HBuilder X运行项目&#xff09; 1.1 配置内容&#xff0c;必须是该小程序的开发者才能运行 查看appid, 项目 -- manifest.json 文件 -- 微信小程序配置 -- APPID 小程序…

用国内首家文生软件平台生成一个整蛊拼图小游戏是什么体验?

前言&#xff1a; 众所周知&#xff0c;2023年是中国大模型发展的元年&#xff0c;以ChatGPT3.5为代表的初代语言大模型横空出世&#xff0c;直接掀起了一阵全球范围内的AIGC浪潮。 在中国大模型追星赶月的这一年&#xff0c;技术迭代日新月异&#xff0c;行业趋势不断变化&a…

RabbitMQ 学习笔记

RabbitMQ学习笔记 一些概念 Broker &#xff1a;RabbitMQ服务。 virtual host&#xff1a; 其实就是分组。 Connection&#xff1a;连接&#xff0c;生产者消费者与Broker之间的TCP连接。 Channel&#xff1a;网络信道&#xff0c;轻量级的Connection&#xff0c;使用Chann…

基于SpringBoot+Vue北部湾地区助农平台设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还…

Centos SFTP搭建

SFTP配置、连接及挂载教程_sftp连接-CSDN博客1、确认是否安装yum list installed | grep openssh-server 2、创建用户和组 sudo groupadd tksftpgroup sudo useradd -g tksftpgroup -d /home/www/tk_data -s /sbin/nologin tksftp01 sudo passwd tksftp013. 配置SFTP注意&a…

【ElasticSearch】ElasticSearch基本概念

ES 是一个开源的高扩展的分布式全文检索引擎&#xff0c;它是对开源库 Luence 的封装&#xff0c;提供 REST API 接口 MySQL 更适合数据的存储和关系管理&#xff0c;即 CRUD&#xff1b;而 ES 更适合做海量数据的检索和分析&#xff0c;它可以秒级地从数据库中检索出我们感兴…

数据结构和算法之复杂度比较

数据结构和算法之复杂度比较 参考如下网址&#xff1a;https://www.bigocheatsheet.com/ 方便快速查询 1. 复杂度比较 2. 常见数据结构复杂度 3. 常见算法复杂度

计网课设-发送TCP数据包

一、效果展示 二、代码实现 import nmap import socket import tkinter as tk from tkinter import messagebox,Listbox from threading import Thread#获取自身IP&#xff0c;从而确定当前局域网范围 def get_ip_address():#创建了一个socket对象&#xff0c;socket.AF_INET表…