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

相关推荐
~黄夫人~5 分钟前
Linux 权限管理:用户组 + 特殊权限 + ACL 解析
linux·运维·计算机·学习笔记·权限管理
2501_9071368229 分钟前
手搓仓库管理系统Senbar-1.0.4(附带财务管理板块)
运维·服务器·软件需求
badwomen__1 小时前
MOV 指令的数据流向
服务器·性能优化
盟接之桥2 小时前
盟接之桥EDI软件:API数据采集模块深度解析,打造企业数据协同新引擎
java·运维·服务器·网络·数据库·人工智能·制造
2501_907136822 小时前
离线工具箱 内含53个小工具
linux·服务器·网络
时空潮汐2 小时前
神卓N600 NAS身份核验功能深度解析
linux·运维·网络·神卓nas·神卓n600 pro·家庭轻nas
哈哈浩丶2 小时前
安卓系统全流程启动
android·linux·驱动开发
小李独爱秋2 小时前
模拟面试:用自己的话解释一下lvs的工作原理
linux·运维·面试·职场和发展·操作系统·lvs
百锦再3 小时前
Jenkins 全面精通指南:从入门到脚本大师
运维·后端·python·servlet·django·flask·jenkins
隔壁老王的代码3 小时前
Jenkins的流水线详解
运维·servlet·jenkins