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地址和挂载

相关推荐
.柒宇.9 分钟前
运维常见面试题_02_数据库
运维·数据库·sql·面试
数智工坊10 分钟前
UECP:不确定性增强的协同感知 | 基于物理先验的BEV融合新范式
linux·ubuntu·3d·机器人
九硕智慧建筑一体化厂家27 分钟前
从光伏板到护眼灯,直流照明如何重构绿色校园的能源基因
运维·人工智能·重构·智慧城市·能源
ltl9 小时前
内核追踪:ftrace、kprobe、uprobe、tracepoint 生产实战
linux
·薯条大王9 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
ZJH__GO12 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
小小、码农12 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b13 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
NeilYuen13 小时前
用UDP实现向DNS服务器请求IP地址
服务器·tcp/ip·udp
沫璃染墨15 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++