imx6驱动

linux启动流程

1,bootloader,一个裸机程序,为linux启动准备环境,引导linux启动

1)初始化CPU(工作模式)

2)初始化异常向量表

3)初始化堆栈

4)关闭中断

5)关看门狗(定时复位)

6)关Cache

7)关闭MMU(虚拟地址→物理地址)

8)初始化内存

9)初始化相关设备(串口、网卡)

10)集成相关协议

11)搬移内核到内存,向内核传参(控制台、根文件系统类型及位置)

12)启动内核

13)从此bootloader不再控制CPU,CPU控制权移交给内核

2,linux kernel(内核),一个复杂的、永不停息的程序

1)文件管理

2)进程管理

3)网络管理

4)内存管理

5)设备管理

linux启动完成后加载(挂载)根文件系统,init->services,shell -> userapp

3,rootfs,根文件系统(挂载的第一个文件系统),一堆文件的集合

文件系统:按一定格式组织的一堆文件

1)系统命令

2)配置文件

3)应用程序(工具,用户程序)

4)普通文件(文本文件、mp3、mp4、图片)

5)启动脚本(系统服务、安装的应用程序)

RAM和ROM类型

RAM

SRAM:静态,用触发器电路存储数据,无需刷新,速度极快但成本高、容量小。

DRAM:动态,用电容存储数据,需要定时刷新来维持电荷,速度稍慢但成本低、容量大,是构成内存的基础

SDRAM:同步动态,与 CPU 时钟信号同步工作,提升了数据传输效率,是 DRAM 的主流升级形态

DDRn:Double Data Rate SDRAM,在时钟的上升沿和下降沿都能传输数据,带宽比 SDRAM 翻倍

内存(DDR SDRAM)属于RAM → DRAM → SDRAM 分支,是嵌入式设备的主存 / 运行内存,也是程序运行时的临时存储区域

ROM

PROM:可编程,出厂时为空白,可由用户一次性编程写入数据,但写入后无法修改。早期用于固化固定功能的程序,现在基本被 Flash 取代。

EPROM:可擦除可编程,支持多次擦写,但需要用紫外线照射芯片窗口来清除数据,操作繁琐。曾用于需要偶尔更新程序的场景,现已被 EEPROM 和 Flash 淘汰

EEPROM:电可擦除可编程,支持电信号擦写,可按字节修改数据,擦写速度慢但灵活性高

flash(闪存)属于 ROM → EEPROM 的大容量升级版,是嵌入式设备的永久存储介质,相当于电脑的固态硬盘

linux配置

1,先通过网线将imx6和windows连接起来,向imx6中烧写操作系统,以如下软件将Ubuntu和imx6建立联系

2,连接好后打开Windows搜索设备管理器,点开端口查看类型

3,打开软件点击相同的类型

4,通电imx6

5,通过网线与Ubuntu建立连接,需要配置IP地址

1)查看IP地址:ifconfig

2)修改IP地址:ifconfig eth0 192.168.1.100(复制/粘贴:Ctrl+Shift+c/v)

3)修改选项

6,Ubuntu修改

1)打开网络配置文件配置成如下形式 sudo vim /etc/network/interfaces

其中address后就是要修改的IP地址

2)共享文件,sudo vim /etc/export,将其内容改成如下(一般只有最后一行不同,毕竟其他行被注释了)

7,回到SecureCRTPortable.exe中共享目录

mount -o nolock,nfsvers=3 192.168.1.3:/home/linux/nfs /mnt

注:不要先进入mnt中,挂载后退出重进,就会显示Ubuntu中的文件,重复挂载会报错

8,编写程序

在SecureCRTPortable.exe没有gcc编译器,而且通过gcc编译的文件a.out也不识别

所以要通过arm-linux-gnueabihf-gcc hello.c -o hello来编译

注意:每次重启imx6都要在软件中重新修改IP地址和挂载

相关推荐
尤老师FPGA1 天前
petalinux修改设备树添加vdma生成linux系统
android·linux·运维
yxy___1 天前
达梦分布式集群DPC_重做副本-操作指南(DEM)_yxy
运维·分布式
月山知了1 天前
linux kernel component子系统:基于rk3588 Android 14 kernel-6.1 display-subsystem代码分析
android·linux·运维
_Emma_1 天前
【QCOM】 Linux下qcom venus 编解码驱动框架分析
linux·驱动开发·视频编解码
星辰徐哥1 天前
大模型工程化部署:Docker Compose批量部署
运维·docker·容器
SEO-狼术1 天前
Support Network Diagnostics in .NET
运维·服务器·网络
AI周红伟1 天前
AI自动盯盘与定时行情分析:OpenClaw股票辅助Agent集成完整使用指南-周红伟
运维·服务器·人工智能·音视频·火山引擎
不才小强1 天前
Linux系统常用命令
linux·运维·网络
SPC的存折1 天前
8、Ansible之Playbook---Roles
linux·服务器·ansible
Kira Skyler1 天前
BPF KPROBE编程中的ctx是什么?
linux