LINUX
linux相关基础知识
Shijia Yin
这个作者很懒,什么都没留下…
展开
-
Linux设备驱动之字符设备驱动
简述Linux设备驱动有三种:字符设备驱动、块设备驱动、网络设备驱动。其中字符设备驱动最为基础。Linux设备驱动目前有三种开发架构:原始架构、平台总线架构、设备树架构。三种架构理解难度依次上升,但开发难度依次下降。本篇文章介绍原始架构。字符设备驱动开发最关键的两个数据结构是cdev和file_operations,如果想要自动生成设备节点,还要用到class结构。cdev结构体用来描述一...原创 2020-04-22 21:49:26 · 559 阅读 · 0 评论 -
Linux设备驱动之模块
引言linux设备驱动的作用是隐藏具体的硬件细节,将所有的设备都抽象成一个个文件供应用程序调用,也就是说,在应用程序员的眼中,所有的硬件都是文件,U盘是文件,磁盘是文件,LED灯是文件,引脚是文件,蜂鸣器是文件,万物皆文件。Linux内核非常庞大,组件也非常之多,我们有两种方法来将这些组件包含到内核中直接编译到Linux内核中,这种方法会导致内核很大,而且每次需要添加或者删除组件的时候都得...原创 2020-04-22 21:48:41 · 565 阅读 · 0 评论 -
对linux中ramdisk的理解
不要轻信,只是我的临时性笔记而已先暂时放一个链接在这里,等我彻底理解了再来补充内核与ramdisk到底是什么关系原创 2020-01-13 16:34:52 · 306 阅读 · 0 评论 -
U-Boot之LINUX内核引导
基于samsung的Exynos 4412,U-Boot版本为2010.03前面我们介绍了u-boot的第一阶段和第二阶段,今天我们来介绍u-boot引导内核,这也是u-boot的最后一个阶段,也就是说,这个阶段过后,u-boot的任务就彻底结束了,Linux内核将接管一切软硬件资源。下面开始我们的分析。u-boot引导内核分为两个阶段将内核镜像从FLASH加载到内存启动内核将内...原创 2019-12-13 19:05:31 · 201 阅读 · 0 评论 -
U-Boot之启动第二阶段
基于samsung的Exynos 4412,U-Boot版本为2010.03在U-Boot启动之第一阶段中,我们知道了U-Boot是通过start_armboot这个函数进入第二阶段的,所以我们从这个函数开始分析。 init_fnc_t **init_fnc_ptr; char *s; int mmc_exist = 0;定义一个二级指针,后面会用到 /* Pointer is ...原创 2019-12-12 21:15:34 · 198 阅读 · 0 评论 -
U-Boot之text、data、bss、heap、stack基本认识
一般的代码分为text、data、bss、heap以及stack这五个段。本位来介绍一下这四个段的区别text段是代码段,一段程序被编译成可执行程序的时候会产生全局数据和操作这些全局数据的指令,text段就是用来存放这些指令的data段是已经初始化的数据段,这些段里面是实实在在的数据bss段包含的是一些占位符,这些占位符包含了没有初始化的全局变量的大小信息,当程序被加载执行的时候,这些占位符...原创 2019-12-12 20:18:44 · 507 阅读 · 0 评论 -
U-Boot之启动第一阶段
基于samsung的Exynos 4412从链接脚本u-boot.lds中我们知道u-boot是从start.s这个汇编文件开始的,所以u-boot启动的第一阶段肯定也是从这里开始的,这个文件在cpu/arm_cortexa9/文件夹下,下面我们依照这个文件一步一步分析u-boot启动的第一阶段。#include <config.h>#include <version....原创 2019-12-11 11:38:18 · 229 阅读 · 0 评论 -
U-Boot之vmlinux、zImage、uImage之间的关系
uboot经过编译直接生成的elf格式的可执行程序是u-boot,这个程序是可执行,类似于windows下的exe格式,在linux下可直接执行。但是这种格式不能用来烧录下载。用来烧录下载的是u-boot.bin。这个是由u-boot使用某种二进制转换工具来进行转化。这个u-boot.bin就叫镜像,镜像也就是我们最终要烧写到开发板中的文件。Linux内核经过编译后也会生成一个elf格式的可执行...原创 2019-12-10 22:43:46 · 802 阅读 · 0 评论 -
U-Boot之磁盘格式化分区命令实现
我的linux学习是建立在讯为的iTop-4412开发板上的,在讯为开发板使用手册里面有教我们怎么利用U-Boot命令进行EMMC格式化分区,以前照着做是为了快速上手,但现在不行了,现在我要搞清楚它们到底是怎么实现的,下面开始我们的探索。先看看格式化命令长什么样fdisk -c 0fatformat mmc 0:1ext3format mmc 0:2ext3format mmc 0:3...原创 2019-12-10 18:38:49 · 1787 阅读 · 0 评论 -
U-Boot之mkconfig解析
正常U-Boot的编译流程如下make itop_4412_android_config_scp_1GDDRmake all当我们执行第一条指令时,它会到Makefile中找到如下代码,然后执行itop_4412_android_config_scp_1GDDR: unconfig @$(MKCONFIG) $(@:_config=) arm arm_cortexa9 smdkc21...原创 2019-12-09 14:03:47 · 252 阅读 · 0 评论 -
U-Boot之顶层Makefile解析
本文分析的u-boot的版本为2010.03正常编译u-boot的流程如下make xxx_configmake all在u-boot之mkconfig解析中,我们已经了解了make xxx_config做了哪些事情,今天我们就要利用它做的事情来继续分析make all这个命令。其实make all就等于make其实分析这个命令,也就是等于分析顶层目录下面的Makefile。下面就...原创 2019-12-09 14:03:00 · 381 阅读 · 0 评论 -
4412之u-boot编译脚本解析
文章目录序言shell语法学习条件测试算数比较文件系统相关测试字符串比较脚本参数访问脚本解析文件概览脚本解析脚本总结序言开始Linux的第一步,是搞清楚bootloader,目前比较流行的bootloader有很多,如LILO、GRUB、Redboot、ARMboot、u-boot等等,我的板子使用的是u-boot,所以今天的主题就是它的编译脚本,今天的内容主要分为如下几个部分shell语...原创 2019-12-01 12:46:02 · 572 阅读 · 0 评论 -
4412之启动流程分析
文章目录序言4412的地址映射BL1介绍BL2介绍iRAM布局bootloader镜像的整体构成序言前面一阶段的学习,我掌握了通过ADB或者TF开烧写系统、通过拨码开关设置系统的启动介质,今天我就要来详细探究一下这里面的原理。拨码开关是怎么控制启动介质的选择的,烧写的都是些什么东西?被烧写到了什么地方?芯片内部有怎样的机制去配合这些烧写过程?这都是我们要详细探讨的问题。这些问题其实都是属于一个...原创 2019-11-30 22:50:44 · 432 阅读 · 0 评论 -
4412之ADB基本原理概述
文章目录序言什么是ADBADB的工作原理几张图片说明序言在学习linux嵌入式的过程中需要烧写各种镜像,有两种方法,一种是从TF卡,这个很容易理解,另一种是利用ADB烧写,这种就有点不太了解,用着有一种奇怪的感觉,所以今天打算来稍微了解一点,源码不打算看了。这篇文章主要分为如下几个部分:什么是ADBADB的工作原理几张图片说明什么是ADBAndroid 调试桥 (adb) 是一种...原创 2019-11-29 18:00:20 · 727 阅读 · 0 评论 -
Linux下SSH的常见问题
文章目录序言ssh是什么如何使用ssh序言今天我又开启了我得linux嵌入式之旅,不过这次我是带着非常认真得态度来得,所以我打算所有得环境配置都自己配置,我不用ubuntu,而是使用deepin。今天遇到的第一个问题就是如何配置ssh,以方便在主机和虚拟机之间传输数据。主要得配置还是在虚拟机端。本篇文章将分为如下两个部分ssh是什么?如何使用sshssh是什么ssh得全称是Secu...原创 2019-11-28 17:11:09 · 3708 阅读 · 0 评论 -
单片机开发总结
马上秋招了,复习一下单片机。文章目录序言概述调研芯片的应用领域收集相关资料序言大二的时候玩过单片机,马上秋招了,linux只是会用,不会移植,看不懂内核,看不懂uboot,C++也没精通,QT也是半吊子,python也不是我的职业方向,只能把简单的单片机拿过来复习一下,希望在招聘的时候底气能够足一点。找工作是一个原因,除此之外,我还想认真地学一下UCOS,毕竟一个搞嵌入式的连一个RT...原创 2019-09-05 18:58:19 · 1400 阅读 · 0 评论 -
shell脚本常见问题汇总
下面是脚本的内容#! /bin/bashcd /opt/Qt5.3.2/Tools/QtCreator/bin./qtcreator我是用这个脚本来打开Qt5.3.2的第一行是用来说明执行脚本的shell,linux默认是bash,unix默认是sh第二行是跳转目录的命令,第三行是执行跳转到的目录下面的程序一开始我在脚本目录下输入下面的命令执行root@ubuntu:/usr/l...原创 2019-02-02 14:14:40 · 1009 阅读 · 0 评论 -
全面分析嵌入式linux系统启动过程中uboot的作用
全面分析嵌入式linux系统启动过程中uboot的作用1.为什么要有uboot1.1、计算机系统的主要部件(1)计算机系统就是以CPU为核心来运行的系统。典型的计算机系统有:PC机(台式机+笔记本)、嵌入式设备(手机、平板电脑、游戏机)、单片机(家用电器像电饭锅、空调)(2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的主要核心部件都是3个...转载 2019-01-22 11:17:15 · 406 阅读 · 0 评论 -
iTop4412开发板Android4.0.3镜像OTG方式烧写
iTop4412开发板Android4.0.3镜像OTG方式烧写最近开始学习linux,入手一块讯为的iTop4412开发板,遵循讯为的框架学习法(毕竟科技更新速度如此之快,不可能什么都学,必须要懂得抽象化,模块化思想),前阶段学习一直难以入门,前阶段看到一篇文章讲解了uboot(全面分析嵌入式linux系统中uboot的作用),感觉对linux开发流程可以有一点点的理解了,今天早上照着手册烧写...原创 2019-01-10 11:48:59 · 521 阅读 · 0 评论