![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
底层嵌入式Linux/Unix
今晚打酱油8
这个作者很懒,什么都没留下…
展开
-
linux ioctl()函数
我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数 。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它转载 2013-08-03 17:58:12 · 820 阅读 · 0 评论 -
作为一个新人,怎样学习嵌入式Linux
作为一个新人,怎样学习嵌入式Linux作者:管理员 发布于:2012-10-05 15:01:20 文字:【大】【中】【小】作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。 在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也转载 2013-10-10 21:15:10 · 859 阅读 · 0 评论 -
Linux嵌入式 -- 内核 (arm) & 文件系统
1. make distclean2. 配置内核 make menuconfig ARCH=arm3. 编译内核make uImage ARCH=arm CROSS_COMPLIE=arm-linux-编译完成后位于 ARCH/arm/boot/zImage4. 文件系统5. 如何制作linux嵌入式所需的文件系统?原创 2013-08-05 20:40:49 · 865 阅读 · 0 评论 -
Linux嵌入式 -- Bootloader , Uboot
1. Bootloader作用PC机中的引导加载程序由BIOS(其本质是一段固件程序)和GRUB或LILO一起组成。BIOS在完成硬件检测和资源分配后,将硬盘中的引导程序读到系统内存中然后将控制权交给引导程序。引导程序的主要任务是将内核从硬盘上读到内存中,然后跳转到内核的入口点去运行,即启动操作系统。简单地说,BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,原创 2013-08-04 21:24:52 · 939 阅读 · 0 评论 -
mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(一搭建开发环境——建立NFS服务器)
http://blog.csdn.net/yinjiabin/article/details/7489030建立 nfs 服务器 在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的调试。使用 nfs,用户可以将板子要用到的根文件系统放在主机目录下,开发板则通过以太网挂载到这个目录并将这个目录下的文件作为根文件系统的内容,这样用户的程序更新转载 2013-08-12 22:11:36 · 567 阅读 · 0 评论 -
Linux嵌入式 -- 内核 - 进程控制 和 调度
1. 进程四要素1. 有一段程序供其执行。这段程序不一定是某个进程所专有,可以与其他进程共用。2. 有进程专用的内核空间堆栈。3. 在内核中有一个task_struct数据结构,即通常所说的“进程控制块PCB”。有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度。4. 有独立的用户空间。2. struct task_struct 进程描述原创 2013-08-10 22:33:56 · 1318 阅读 · 1 评论 -
Linux嵌入式 -- 内核 - proc文件系统
1. 什么是proc文件系统?实例:通过 /proc/meminfo,查询当前内存使用情况。结论:proc文件系统是一种在用户态检查内核状态的机制。2.Proc文件分类特点 每个文件都规定了严格的权限可读?可写?哪个用户可读?哪个用户可写? 可以用文本编辑程序读取(more命令,cat命令,vi程序等等) 不仅可以有文件,还可以有子目录。 可以自原创 2013-08-11 17:54:20 · 1272 阅读 · 0 评论 -
Linux嵌入式 -- 内核 - 系统调用
1. 系统调用 定义Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。系统调用和普通的函数调用非常相似,区别仅仅在于,系统调用由操作系统内核实现,运行于内核态;而普通的函数调用由函数库或用户自己提供,运行于用户态。2. 系统调用原理#includemain(){time_t the_原创 2013-08-11 14:00:26 · 1148 阅读 · 0 评论 -
Linux嵌入式 -- 内核 - 内核链表
1. linux内核链表链表数据结构的定义:struct list_head { struct list_head *next, *prev; }; list_head结构包含两个指向list_head结构的指针prev和next,由此可见,内核的链表具备双链表功能,实际上,通常它都组织成双向环链表。原创 2013-08-09 22:41:04 · 1035 阅读 · 1 评论 -
Linux嵌入式 -- 内核 - 内核定时器
1. 度量时间差时钟中断由系统的定时硬件以周期性的时间间隔产生,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的常数,可配置(50-1200),在X86平台,默认值为1000(每秒计数1000次)。每当时钟中断发生时,全局变量jiffies(unsigned long)就加1,因此jiffies记录了自linux启动后时钟中断发生的次数。驱动程序常利用jiffies来计原创 2013-08-10 18:20:37 · 831 阅读 · 1 评论 -
阅读linux内核代码的工具-- Source Insight
http://blog.csdn.net/luckyaslan/article/details/7869235Step 1:安装Source Insight并启动程序可以进入图1界面,在工具条上有几个值得注意的地方,如图所示,图中内凹左边的是工程按钮,用于显示工程窗口的情况;右边的那个按钮按下去将会显示一个窗口,里边提供光标所在的函数体内对其他函数的调用图,通过点击该窗体里那些函数转载 2013-08-10 16:56:45 · 1124 阅读 · 0 评论 -
Linux嵌入式 -- 内核 - 内存管理
1. 逻辑地址 线性地址 物理地址段式管理: 16位CPU,20根地址总线,可寻址1M内存,但是只有16位的寄存器,64K。逻辑地址 = 段基地址 + 段内偏移地址物理地址 PA = 段寄存的值 * 16 + 逻辑地址段式管理: 32位CPU,两种模式 实模式 + 保护模式实模式 和 16位CPU一样,段寄存器的值*16就是段地址保护模式原创 2013-08-08 22:45:58 · 1129 阅读 · 1 评论 -
mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(四制作根文件系统及通过NFS挂载文件系统)
http://blog.csdn.net/yinjiabin/article/details/7489563根文件系统一般包括:1)基本的文件系统结构,包含一些必须的目录,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;2)基本程序运行所需的库函数,如:libc/uC-libc;3)基本的系统配置文件,如:rc,inittab等脚本文件转载 2013-08-05 22:02:42 · 699 阅读 · 0 评论 -
Linux嵌入式 -- 内核简介(x86)
1. linux体系结构原创 2013-08-03 20:31:18 · 801 阅读 · 0 评论 -
内核编译错误解答(elf_i386错误)
内核编译错误解答(elf_i386错误)在编译内核过程中遇到的问题及解决方法:1.root@org:/usr/src/linux# make menuconfig *** Unable to find the ncurses librariesor the *** required header files. *** 'make menuconfig' requires the转载 2013-08-04 01:30:44 · 998 阅读 · 0 评论 -
ubuntu/centos printk 终端中不能打印信息及解决办法
今天用ubuntu来调试信息,printk死活打印不出信息,即使把级别跳到,即KERN_ALERT也不行,后再搜了好长时间网络,这个地址:http://bbs.chinaunix.net/archiver/tid-2306491.html有关于这个的讨论,咳ubuntu哪里适合开发呀,只是用于娱乐比较好的解决方法:在终端中#dmesg -c 清除一下转载 2013-08-04 14:18:45 · 2517 阅读 · 0 评论 -
Ubuntu 没有mkinitrd 解决方法
1. 先apt-get install 先装cramfsprogs2. http://archive.debian.net/zh-cn/sarge/initrd-tools下载initrd-tools 安装包,手动安装。。。原创 2013-08-04 02:17:59 · 2211 阅读 · 0 评论 -
由于ptrace.h文件导致的内核编译出错的解决方法
arch/x86/kernel/ptrace.c:1472:17: error: conflicting types for ‘syscall_trace_enter’ In file included from /home/rex/Downloads/linux-2.6.32.60/arch/x86/include/asm/vm86.h:130:0,转载 2013-08-04 01:15:31 · 2455 阅读 · 0 评论 -
Linux驱动开发常用调试工具-------之devmem
在Linux开发中着实用到的调试工具并不是很多。devmem的方式是提供给驱动开发人员,在应用层能够侦测内存地址中的数据变化,以此来检测驱动中对内存或者相关配置的正确性验证。 devmem2使用方法: devmem2 { address } [ type [ data ] ] address : 物理地址转载 2014-06-19 16:59:35 · 1850 阅读 · 0 评论