学习嵌入式之驱动

一、基础搭建

1.基础:

  c语言   软件编程语言
  数据结构   软件编程思想

2.驱动实现目标

  •         如果将Linux系统细致到开发板平台上?
  •         Liunx系统与硬件设备的适配

3.自我能力的锻炼

  • 继续强化C语言
  • 锻炼大型代码阅读和分析能力
  • 学习大型项目的代码搭建和管理的能力
  • 大型项目的软件编程思想
  • 硬件调试能力
  • 软件代码的开发和集成能力
  • Linux系统配置能力

4.Linux系统功能

(1)内存管理:虚拟地址和物理地址的映射和管理
(2)多任务的管理:管理多任务的状态
(3)网络的管理:网络的协议栈
(4)多任务间的通信:进程、线程、管道、共享内存
(5)文件系统的管理

5.shell功能(用户不能直接操作内核原因)

  • 保障Linux内核安全
  • shell命令解释器

6.移植Linux系统到IMX6ULL平台需要的文件列表

(1)bootloader:初始化硬件设备,引导内核启动,为加载内核做准备        u-boot.imx

(2)内核镜像:Linux内核核心代码(屏蔽底层不同的硬件,为上层应用提供统一接口,实现5大功能)                         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        zimage

(3)设备树文件:硬件设备资源信息                                                imx6ull-alientek-emmc.dtb
(4)文件系统:与用户交互的系统                                                                rootfs.tar

7.IMX6ULL板子存储图

8.启动方式

(1)USB启动:上电后从USB连接的设备中读取系统文件信息并启动

(2)SD卡启动:上电后从SD卡设备中读取系统文件信息并启动

(3)EMMC启动:上电后从EMMC设备中读取系统文件信息并启动

(4)Nand Flash启动(无法使用):上电后从Nand Flash设备中读取系统文件信息并启动

9.SD烧录

Windows系统烧录方法:

        mfqtool:NXP官方提供的工具,实现系统烧录,烧录到SD卡上

二、配置Uboot启动烧录

1.烧录原理

2.烧录方式(3种)

(1)直接烧录到emmc

(2)烧录到SD卡

(3)每次从服务器下载,只把Uboot烧到SD中,Uboot起来之后,需要的文件,从Ubuntu中服务器下载,DDR又文件,通过NFS方式挂载在文件系统下,有点在于,重新修改内核和设备树,只需要更新Ubuntu的文件,文件系统修改也可同步,Uboot不用更新

3.网络配置

(1)NAT模式:

  •         (1)Windows有网,Ubuntu就有网
  •         (2)Ubuntu的IP地址是虚拟的
  •         (3)因为(2),所以NAT模式不能作为服务器,(band不了);

(2)桥接模式

  •         (1)Windows与Ubuntu公用同一个网卡,但网络是独立的;
  •         (2)Ubuntu的IP地址是独立的
  •         (3)桥接模式可以作为服务器,上网比较难(网络拥挤,需要的IP更多);
  •         (4)学校不得行!学校一个账号只有一个IP地址;

ping -》 操作开发板(ifconfig)- 》串口线-》安装minicom工具-》apt-get工具集

4..配置tftp服务器

        配置tftp的管理目录:下载从管理目录中下载,上传向管理目录中上传

5.配置nfs服务器

  • 上电 ->SD卡启动 ->uboot ->
  • tftp 80800000 zImage
  • tftp 83000000 imx6ull-alientek-emmc.dtb
  • bootz 80800000-83000000
  • ->uboot 设置bootargs 参数:说明文件系统通过nfs挂载到 192.168.1.100:/home/inux/nfs/rootfs 文件夹下

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

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

相关文章

在 Golang 中复用 HTTP 连接

问题提出最近在实现一个转发大模型调用请求的中转功能,涉及到要构造client发送请求的内容,一开始我每次都是新建一个client来发送请求,这样的代码实现存在一些问题——每次都要构造新的client,并且要重新建立连接。后面了解到在Go…

前端:el-upload文件上传与FormData 对象

<el-uploadclass"uploadDemo":limit"1"dragaccept".xls,.xlsx" <!-- 只保留Excel格式 -->:on-exceed"handleExceedFileLimit":on-change"handleChangeExcelFile":on-remove"handleRemoveExcelFile":bef…

自然处理语言NLP:One-Hot编码、TF-IDF、词向量、NLP特征输入、EmbeddingLayer实现、word2vec

文章目录自然语言处理&#xff08;NLP&#xff09;一、什么是自然语言处理&#xff08;NLP&#xff09;&#xff1f;二、NLP 的核心目标三、NLP 的主要应用方向&#xff08;应用场景&#xff09;四、NLP 的基本概念五、NLP 的基本处理流程1. 文本预处理2. 特征表示3. 模型选择与…

单词记忆-轻松记忆10个实用英语单词(13)

1. board含义&#xff1a;板子&#xff1b;董事会&#xff1b;登机 读音标注&#xff1a;/bɔːrd/ 例句&#xff1a;Write your name on the board. 译文&#xff1a;把你的名字写在板上。 衍生含义&#xff1a;董事会&#xff08;如“board of directors”&#xff09;&#…

Spring循环依赖源码调试详解,用两级缓存代替三级缓存

Spring循环依赖源码详解&#xff0c;改用两级缓存并实验 背景 最近一直在研究Spring的循环依赖&#xff0c;发现好像两级缓存也能解决循环依赖。 关于为何使用三级缓存&#xff0c;大致有两个原因 对于AOP的类型&#xff0c;保证Bean生命周期的顺序 对于有AOP代理增强的类型&am…

亚马逊BALL PIT球池外观专利侵权指控?不侵权意见书助力4条链接申诉成功!

儿童球池作为玩具品类中常见的一款产品&#xff0c;能够给儿童提供游乐的安全空间&#xff0c;深受亚马逊平台用户的喜爱。然而在近期&#xff0c;赛贝收到了部分亚马逊卖家的咨询&#xff0c;原因是他们在售的儿童球池产品链接被美国外观专利USD1009203S&#xff08;下称203专…

开源,LangExtract-Python库用LLM从非结构化文本提取结构化信息

摘要&#xff1a; LangExtract是一个Python库&#xff0c;利用大语言模型&#xff08;LLM&#xff09;根据用户定义指令从非结构化文本文档中提取结构化信息。它具备精确源定位、可靠结构化输出、长文档优化、交互式可视化、灵活LLM支持、适应任意领域等特点。可通过几行代码快…

如何根据团队技术能力选择最适合的PHP框架?

作为一名PHP开发者&#xff0c;面对众多的PHP框架&#xff0c;你是否曾感到选择困难&#xff1f;Laravel、Symfony、CodeIgniter、ThinkPHP…每个框架都有其特色和优势&#xff0c;但没有最好的框架&#xff0c;只有最适合的框架。而选择合适框架的关键因素之一&#xff0c;就是…

多人同时导出 Excel 导致内存溢出

1、问题根因分析多人同时导出Excel导致内存溢出&#xff08;OOM&#xff09;的核心原因是&#xff1a;在短时间内&#xff0c;大量数据被加载到JVM堆内存中&#xff0c;且创建了大量大对象&#xff08;如Apache POI的Cell、Row、Sheet对象&#xff09;&#xff0c;超过了堆内存…

深入 RAG(检索增强生成)系统架构:如何构建一个能查资料的大语言模型系统

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《深度探秘&#xff1a;AI界的007》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、LLM 的局限&#xff1a;模型知识“封闭” vs 现实知识…

linux tftpboot烧写地址分析

1&#xff0c;loadaddr 是一个环境变量&#xff0c;用于指定文件&#xff08;如内核镜像、设备树等&#xff09;加载到内存的起始地址。setenv loadaddr 0x82000000setenv loadaddr 0x80008000saveenv //.保存配置将 loadaddr 设置为 0x82000000&#xff0c;表示后续文件将加载…

硬件工程师9月实战项目分享

目录 简介 人员情况 实战项目简介 功能需求 需求分析 方案设计 电源树设计 时钟树设计 主芯片外围设计 接口设计 模拟链路设计 PCB设计检查要点 测试方案设计 硬件测试培训 测试代码学习 培训目标 掌握基本的硬件设计流程 掌握以FPGA为核心的硬件设计业务知识 …

力扣刷题——59.螺旋矩阵II

力扣刷题——59.螺旋矩阵II 题目 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1&#xff1a;输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输…

win11系统还原点恢复系统

背景 系统换位bug11后&#xff0c;真的是各种以前的操作和设置找不到&#xff0c;太烦了&#xff0c;我是没想到&#xff0c;连系统恢复还原点都这么难找。然后搜了一圈都是恢复系统之类的&#xff0c;真的崩溃。只好自己记录了。 ✍内容找到设置—>系统–>系统信息系统信…

DHCP 原理与配置(一)

应用场景随着网络规模的不断扩大&#xff0c;网络复杂度不断提升&#xff0c;网络中的终端设备例如主机、手机、 平板等&#xff0c;位置经常变化。终端设备访问网络时需要配置IP地址、网关地址、DNS服务器 地址等。采用手工方式为终端配置这些参数非常低效且不够灵活。 IETF于…

SARibbon的编译构建及详细用法

目录 1.1 源码构建 1.2 搭建项目 1.3 详细用法 1.4 不同风格 1.5 完整代码 引言:SARibbon是一个专门为Qt框架设计的开源Ribbon风格界面控件库,它模仿了微软Office和WPS的Ribbon UI风格,适用于需要复杂菜单和工具栏的大型桌面程序。本文从源码编译构建到详细使用,做了一…

CSS【详解】性能优化

精简 CSS移除未使用的 CSS&#xff08;“死代码”&#xff09;&#xff0c;可借助工具如 PurgeCSS、UnCSS 自动检测并删除未被页面使用的样式。避免重复样式&#xff0c;通过提取公共样式&#xff08;如 mixin 或公共类&#xff09;减少代码冗余。利用预处理器&#xff08;Sass…

Flutter 线程模型详解:主线程、异步与 Isolate

一、主线程&#xff1a;默认的执行环境 所有代码默认运行在主线程。下面的例子展示了一个会阻塞主线程的错误示范&#xff1a; import package:flutter/material.dart;void main() {runApp(const MyApp()); }class MyApp extends StatelessWidget {const MyApp({super.key});ov…

ChartDB:可视化数据库设计工具私有化部署

ChartDB:可视化数据库设计工具私有化部署一、什么是ChartDB ChartDB 是一款基于 Web 的开源数据库可视化工具&#xff0c;专为简化数据库设计与管理流程而开发。以下是其核心特性与功能概述: 1、核心功能 智能查询可视化‌&#xff1a;通过单条 SQL 查询即可生成数据库架构图&a…

单片机-FreeRTOS(ing)

目录 一、基础介绍 1.1 调度策略 1.1.1 调度方式 1.1.2 调度器 1.2 任务以及优先级 1.2.1 任务与协程 1.2.2 任务状态 1.2.3 任务优先级 1.2.4 任务优先级分配方案 1.3 任务间通信 - 信号量 1.3.1 信号量 1.3.2 任务间计数信号量的实现 1.3.3 中断方式计数信号量的…