
内核开发
文章平均质量分 86
如果可以不需要长大
小伙伴,我从事嵌入式软件开发工作。做过关于嵌入式平台的上层软件开发以及系统级开发——驱动程序开发。我的职业规划是从事Linux系统的系统级驱动开发。同时借优快云这个平台和大家进行交流。
展开
-
串口测试代码
#include /*标准输入输出定义*/ #include /*标准函数库定义*/ #include /*Unix 标准函数定义*/ #include #include #include "string.h" #include原创 2014-08-25 16:48:15 · 1093 阅读 · 0 评论 -
Linux下 使用Repo和Git下载Android源代码并编译
本日志介绍了下我个人在64位ubuntu 12.10下使用repo和git来下载android源代码的过程。本文参看了官方网页的介绍:http://source.android.com/source/downloading.html,并结合了些许个人经历。 编译下载android源码需要大量时间、精力、人品,请广大读者谨慎上路。如果大家在阅读本文时有任何问题,请发邮件至讨论:czxttkl@g转载 2015-01-15 11:31:53 · 804 阅读 · 0 评论 -
Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)---- asm [volatile](**)
在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly。本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^)。注意:由于gcc采用AT&T风格的汇编语法(与Intel Syntax相对应,二者的区别参见这里),原创 2015-01-19 09:49:20 · 4040 阅读 · 0 评论 -
shell实现磁盘分区由MBR转换为GPT
文件shell.sh内容:#!/bin/bashi=1for ID in $( cat /proc/partitions )doNUM=$iVALUE-$( awk ' NR=='$NUM' {print $4} /proc/partitions ' )if [[ $VALUE == sd[a-z] ]]thenparted /dev/$VA原创 2016-07-27 17:24:30 · 4842 阅读 · 0 评论 -
使用parted命令对linux硬盘进行操作
前面介绍了[使用fdisk命令对linux硬盘进行操作] ,除了fdisk命令,在linux下还有一个功能也非常强大的磁盘管理工具parted。这里继续沿用[使用fdisk命令对linux硬盘进行操作] 中的环境对parted命令进行一些介绍。parted的基本操作输入parted命令,进入parted管理界面,如果没有指定硬盘,parted命令会默认选择第一个硬盘为当前操作硬转载 2016-07-27 17:28:17 · 3021 阅读 · 0 评论 -
linux教程——1.启动过程
Linux 系统启动过程linux启动时我们会看到许多启动信息。Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:内核的引导。运行init。系统初始化。建立终端 。用户登录系统。内核引导当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,原创 2016-07-22 11:26:24 · 1741 阅读 · 0 评论 -
linux sed 命令
Linux sed命令是利用script来处理文本文件。sed可依照script的指令,来处理、编辑文本文件。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。语法sed [-hnV][-e][-fscript文件>][文本文件]参数说明:-e或--expression= 以选项中指定的script来处理输入的文本文件。转载 2016-08-11 11:08:57 · 548 阅读 · 0 评论 -
linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
$# 是传给脚本的参数个数$@ 是传给脚本的所有参数的列表$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$$ 是脚本运行的当前进程ID号$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$? 是显示最后命令的退出状态,0表示没有错误原创 2016-08-11 11:22:06 · 1247 阅读 · 0 评论 -
linux shell编程——if
shell编程中条件表达式的使用if 条件then Commandelse Commandfi 别忘了这个结尾If语句忘了结尾fitest.sh: line 14: syntax error: unexpected end of fi转载 2016-08-11 11:27:33 · 505 阅读 · 0 评论 -
通过Gearman实现MySQL到Redis的数据同步
对于变化频率非常快的数据来说,如果还选择传统的静态缓存方式(Memocached、File System等)展示数据,可能在缓存的存取上会有很大的开销,并不能很好的满足需要,而Redis这样基于内存的NoSQL数据库,就非常适合担任实时数据的容器。但是往往我们又有数据可靠性的需求,采用MySQL作为数据存储,不会因为内存问题而引起数据丢失,同时也可以利用关系数据库的特性实现很多功能。所以就会很自然原创 2015-01-07 09:57:25 · 883 阅读 · 0 评论 -
为什么会有extern “C”这样的规定?
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不原创 2015-01-07 17:28:03 · 674 阅读 · 0 评论 -
Linux环境下ping命令出现“Destination host unreachable”解决方法
在一次测试过程中主机和单板机原创 2014-09-23 16:03:26 · 36155 阅读 · 0 评论 -
Linux磁盘分区UUID的获取及其UUID的作用
注:UUID-Universally Unique IDentifiers全局唯一标识符一、Linux磁盘分区UUID的获取方法1、[www.linuxidc.com@localhost ~]$ ls -l /dev/disk/by-uuid/ total 0lrwxrwxrwx 1 root root 10 2010-01-18 02:18 0733f5c1-cb85-4转载 2014-08-13 16:27:25 · 942 阅读 · 0 评论 -
Fedora下nfs服务器搭建
Fedora19安裝配置NFS并连接开发板 zyl-1014-5-6安装启动NFS服务安装NFS服务#yum install nfs-utils*#yum install portmap关闭Fedora默认的防火墙,#systemctl stop firewalld启用NFS服务# systemctl enable nfs-server.serviceln -s '/lib/s原创 2014-08-25 16:45:54 · 1691 阅读 · 0 评论 -
基于Ubuntu制作内核镜像
基于Ubuntu制作内核镜像准备工作:1. 完整的linux内核(本次试验以linux2.6.35为例)2. PC机 操作步骤:1. 首先,将linux内核拷贝到系统的/usr/src目录下。在这个拷贝的过程中有一点需要注意,下载的linux内核不能在windows下进行解压拷贝。Windows和linux对于文件的命名规则不同,在linu原创 2014-08-13 15:54:17 · 2328 阅读 · 0 评论 -
linux内核文件zImage,bzImage,vmlinuxz,uImage介绍
内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。 那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zIm原创 2014-08-13 15:56:49 · 3718 阅读 · 0 评论 -
error : comparison of distinct pointer types lacks a cast
【问题】某函数中: unsigned int flags;。。。。 local_irq_save(flags);。。。。。编译后,出现警告:comparison of distinct pointer types lacks a cast去查找源码,发现这个函数 local_irq_save是宏定义,跟踪到最后是和将传入参数取地原创 2014-08-13 16:19:28 · 6810 阅读 · 0 评论 -
linux内核编译错误之交叉编译错误
错误:arch/arm/mm/alignment.c: In function 'proc_alignment_write':arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' outputarch/arm/mm/alignment.c:119: error: read-only var原创 2014-08-26 14:27:44 · 979 阅读 · 0 评论 -
/boot/grub/menu.lst详解
基本概念menu.lst有时候也叫grub.conf,但是/boot/grub/下会有一个名叫menu.lst的符号链接指向它。它是grub引导系统的配置文件。基本选项default 0timeout 10hidemenucolor white/bluepassword --md5 $1$etSG6$LlxT8irAfAv5vYQn6tZUw1default:后跟一原创 2014-08-13 16:22:55 · 3196 阅读 · 0 评论 -
linux下面串口工具C-kermit
C-kermit是一款集成了网络通信、串口通信的工具,它有如下多种功能1.支持kermit文件传输协议2.自定义了一种脚本语言,它强大而易于使用,可用于自动化工作3.无论是网络通信,还是串口通信,操作是一致的,并支持多种硬件、软件平台4.有安全认证、加密功能5.内建FTP、HTTP客户端功能及ssh接口6.支持字符集转换介绍在ubuntu8.原创 2014-08-13 16:30:07 · 741 阅读 · 0 评论 -
linux shell sed 实现字符串查找、插入实例
1.在特定字符串所在行后添加一行或多行字符:实例一:通过grep获取特定字符串所在的行号处添加行原创 2016-08-11 13:47:27 · 26686 阅读 · 1 评论