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

相关推荐
一袋米扛几楼981 小时前
【密码学】CrypTool2 工具是什么?
服务器·网络·密码学
vin_zheng2 小时前
破解企业安全软件网络拦截实战记录
运维
林姜泽樾4 小时前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
xiaokangzhe4 小时前
Linux系统安全
linux·运维·系统安全
feng一样的男子4 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
南棱笑笑生4 小时前
20260310在瑞芯微原厂RK3576的Android14查看系统休眠时间
服务器·网络·数据库·rockchip
xiaokangzhe5 小时前
Nginx核心功能
运维·nginx
松果1775 小时前
以本地时钟为源的时间服务器
运维·chrony·时间服务器
XDHCOM5 小时前
ORA-32152报错咋整啊,数据库操作遇到null number问题远程帮忙修复
服务器·数据库·oracle
Highcharts.js5 小时前
Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
linux·运维·javascript·ubuntu·react.js·数据可视化·highcharts