- 博客(43)
- 收藏
- 关注
转载 Linux驱动开发学习的一些必要步骤
1. 学会写简单的makefile2. 编一应用程序,可以用makefile跑起来3. 学会写驱动的makefile4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。5. 写一完整驱动, 加上read, write,
2016-07-06 13:58:34
10999
转载 ARM Linux 3.x 的设备树(Device Tree)之DTB、DTS
1、ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-x
2016-07-05 11:25:08
2385
转载 ROM 、RAM和FLASH 的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM 有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非
2016-06-27 21:26:06
18520
转载 最简单的驱动hello.c与Makefile模板
一、hello.c文件分析#include#includeMODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello,init the module!"); return 0;}static void hello_exit(void){
2016-06-27 21:01:33
2195
转载 shell知识点整理
转载:http://blog.youkuaiyun.com/zjf280441589/article/details/39667929简单的示例Shell程序示例1.[python] view plain copy #!/bin/bash #This is to show what a shell script looks li
2016-06-21 20:58:25
1634
原创 2.系统移植——u-boot
u-boot版本的选择:1、是否支持我们的开发板2、是否稳定u-boot源码目录下每个目录的作用:平台相关:支持哪些板子board(下面的目录以厂家名字命名) arch(存放体系架构代码)平台不相关:支持什么功能common(存放uboot命令源码)doc(存放说明文档)drivers(存放uboot支持的驱动)dts(存放对设备树源码的操作)
2016-06-21 13:51:25
604
转载 Makefile 使用总结
1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力.
2016-06-21 09:15:22
845
原创 1.系统移植——基础知识
系统移植:脚本、Makefile、C语言、汇编、Kconfig(make menuconfig)、dt(设备树)SOC(CPU,IROM,IRAM,控制器)FS4412(SOC,外设)嵌入式系统:应用层:软件、库(函数源码、API)内核:(从上到下)系统调用(系统调用下面再是内核)进程管理 设备管理 内存管理 文件系统 网络协议 中断(软中断)
2016-06-20 10:39:01
701
原创 9.Linux应用编程——信号灯(System——进程)
信号灯,也叫信号量(system V)(semaphore)。它是不同进程间或一个给定进程内部不同线程间同步的机制。信号灯种类: posix 有名信号灯 posix基于内存的信号灯(无名信号灯) System V信号灯(IPC对象)API1.semget #include #include #include int sem
2016-06-12 20:59:37
646
原创 7.Linux应用编程——共享内存
ftok函数:描述:系统建立IPC通讯 (消息队列、信号量和共享内存) 时必须指定一个ID值。通常情况下,该id值通过ftok函数得到。头文件:#include #include 函数原型:key_t ftok(const char *pathname, int proj_id);pathname:已存在的合法的路径proj_id:转化为十六进制,作为key
2016-06-12 20:58:14
495
原创 6.Linux应用编程——管道、信号
进程间通信(IPC):常用的进程间通信方式(7种):传统的进程间通信方式:无名管道(pipe)、有名管道(fifo)和信号(signal)System V IPC对象:System V共享内存(share memory)、System V消息队列(message queue)、System V信号灯(semaphore)BSD:套接字(socket)管道概念:管道是Unix
2016-06-12 20:56:39
552
原创 5.Linux应用编程——信号量(POSIX—线程)
posix标准信号灯(一般用于线程间通信)同步:根据需求按照一定的顺序先后执行API(posix标准信号灯(一般用于线程间通信))1.sem_init:信号量初始化函数函数原型:int sem_init(sem_t *sem, int pshared, unsigned int value);sem:初始化的信号量pshared:信号量共享的范围(0:线程间使用
2016-06-12 20:55:28
352
原创 4.Linux应用编程——线程
线程线程概念:在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列/指令序列”;一切进程至少有一个执行线程;当前linux采用的线程模型:轻量级进程(可以单独拥有时间片的函数)轻量级进程是内核支持的用户线程,是内核线程的一种抽象对象。每个线程拥有一个或多个轻量级线程,而每个轻量级线程分别被绑定在一个内核线程上。N:M线
2016-06-12 20:54:17
474
原创 2.Linux应用编程——标准IO
标准IO(库函数)库:在用户空间系统调用:在内核中标准io操作的是流。缓存区:全缓存(操作文件的时候)、行缓存(遇到\n刷新缓存区)、不缓存缓存io是标准io库中的。非缓存io就是文件io。标准IO的核心对象就是流。当用标准IO打开一个文件时,就会创建一个FILE结构体描述该文件(或者理解为创建一个FILE结构体和实际打开的文
2016-06-12 20:46:01
615
原创 1.Linux应用编程——文件
文件I/O 文件IO和标准IO的区别: 静态库和共享库的区别:静态库的特点:共享库的特点: 文件描述符:1.对于Linux内核而言, 所有的文件或设备都对应一个文件描述符(Linux的设计哲学: 一切皆文件), 这样可以简化系统编程的复杂程度;2.当打开/创建一个文件的时候, 内核向进程返回一个文件描述符(是一个非负整数). 后续对文件的操作只需通过该
2016-06-12 20:40:33
411
转载 哈佛结构和冯·诺依曼结构的区别
哈佛结构(英语:Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的
2016-06-12 09:17:22
680
原创 TCP/IP理论
1 初识TCP/IP1.TCP/IP体系结构和OSI体系结构1.OSI参考模型与TCP/IP 图解OSITCP/IPprotocol(协议)explain简应用层应用层HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3应用层与应用程序界面沟通,以达
2016-06-10 16:35:31
2650
转载 SQLite3 C语言API入门
下载SQLite3我们下载sqlite源码包,只需要其中的sqlite3.c、sqlite.h即可。最简单的一个创建表操作#include #include "sqlite3.h"int main(int argc,char *argv[]){ const char *sql_create_table="create table t(id int
2016-06-07 11:57:07
596
转载 TCP/IP入门(4) --应用层
/**本篇博客由汗青ZJF整理并发布:转载:http://blog.youkuaiyun.com/zjf280441589/article/category/1854365*/TCP/IP中的应用层 DNS简介 域名系统是基于描述名字-地址映射的分布式计算机系统的实现,其作用是提供主机名和IP 地址间的映射关系。
2016-06-07 09:13:02
463
转载 TCP/IP入门(2) --网络层
/**本篇博客由汗青ZJF整理并发布:转载:http://blog.youkuaiyun.com/zjf280441589/article/category/1854365*/什么是虚拟网络互连? 所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的(比如局域网有的采用的是以太网, 有的采用令牌环网),但是我们利用 IP 协
2016-06-07 09:10:31
553
转载 TCP/IP入门(1) --链路层
/**本博客由汗青ZJF整理并发布:转载:http://blog.youkuaiyun.com/zjf280441589/article/category/1854365*/TCP/IP体系结构 1)网络接口层 物理层定义与传输媒体的接口有关的一些特性,即机械特性、电气特性、功能特性、过程特性,并需要完成并行传输和串行传输之间的转换。
2016-06-07 09:08:04
599
原创 linux下的sqlite入门
安装sqlite拖动三个deb包 进入ubuntu 正常文件夹(非根目录,非共享目录)sudo dpkg -i *.debsudo dpkg (deb 安装包 debain linux 安装包类型)*.deb 所有的 以deb结尾的文件sql 自动补齐(tab键) sqlite3 正常进入 输入 .quit为退出不行的话 输个; (分号)提示错误以后 再输第四步
2016-06-06 21:42:12
698
转载 TCP/IP入门(3) --传输层
转载:http://blog.youkuaiyun.com/zjf280441589/article/category/1854365传输层的主要功能 1)传输层为应用进程之间提供端到端的逻辑通信(网络层是为主机到主机提供逻辑通信)。 2)复用和分用: 复用是指发送方不同的应用进程都可以使用同一个传输层协议传送数据; 分用是指接收方的传输层在剥去报文的首部之后能够把这些
2016-06-06 21:19:20
675
原创 3.Linux应用编程——进程
进程的相关基本概念: 进程是一个独立的可调度的任务 进程是一个抽象实体。当系统在执行某个程序时,分配和释放各种资源。操作系统特点: 多任务、多用户、分时性多任务的操作系统分为:抢占式、非抢占式 抢占式:多任务多用户的操作系统具有绝对的控制权来控制每个任务可以使用CPU的时间。进程和程序的区别: 程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念 进程是一个动态的概念,
2016-05-23 19:59:23
455
原创 内存
内存: 1.代码区: 存放CPU执行的机器指令(machine instructions)。通常,代码区是可共享的(即另外的执行程序可以调用它),因为对于频繁被执行的程序,只需要在内存中有一份代码即可。代码区通常是只读的,使其只读的原因是防止程序意外地修改了它的指令。另外,代码区还规划了局部变量的相关信息。2.数据区(静态区): (1)已初始化数据区(.data
2016-05-23 10:19:55
398
原创 linux下的命令整理
ls -a:显示 文件和隐藏文件 ls -R:从当前目录开始递归子目录显示内容 ls -s:以4k为最小单位显示文件大小 ls -sh:以某种单位显示文件大小 ls -l:详细信息,如下 ls -R -sh -i(inode节点) 详细信息如下: d rwx r-x r– linux linux 4096 4月18 15:55 work 从左到右的含义如下:
2016-05-21 19:26:19
416
原创 Linux的目录结构整理
Linux文件系统采用带链接的树型结构,即只有一个根目录,其中含有下级子目录或文件信息;子目录中又可含有更下级的子目录或文件的信息。这样一层一层的延伸下去,构成一颗倒置的树。目录: /boot目录: 内核文件、系统自举程序文件保存位置,存放了系统当前的内核【一般128M即可】 如:引导文件grub的配置文件等/etc目录: 系统常用的配置文件,所以备份系统时一定要备份
2016-05-21 19:00:34
444
转载 程序员练级之路 (作者:陈皓)
建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。注:你也许会很奇怪为什么下面的东西很偏Unix/Linux,这是因为我觉
2016-05-21 18:32:19
459
转载 C语言中内存分配
在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。第1节主要介绍内存管理基本概念,重点介绍C程序中内存的分配,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。第2节主要介绍C语言中内存分配及释放函数、函数的功能,以及如何调用这些
2016-05-18 15:15:04
644
转载 关于取地址运算符&以及指针的问题
这恐怕不是翻译的问题。如果在你所看的那本书里,出现了“取地址操作符即&,不能施加于表达式”这种说法的话,那么,这种说法是错误的。不过,考虑到这本书的特殊的背景,这种“错误”在某种程度上是可以被原谅的 —— 毕竟,如果那本书能将一切问题都讲细致的话,它就远远不能止于那个篇幅了。首先,在排除其他意义的情况下,作为操作符的&,叫做“取地址操作符”(Address Operator)。然而,这种称
2016-04-24 23:22:31
2551
转载 18个最好的代码编辑器/IDE工具
本文为开发人员收录了18个最好的代码编辑器/IDE工具,希望你会喜欢。 1) chocolatapp Chocolat是最新出现的一款强大的Mac系统文本编辑器,兼具原生的Cocoa及强大的文本编辑功能。Chocolat支持很多种编程语言的关键字高亮显示、窗口分割、标签页、色彩主题等功能。界面和MacVim非常相似。 2) aptana 一个非常强大、开
2016-04-21 09:07:54
2545
原创 ubuntu基本操作
基本操作:sudo shutdown -h now 关机sudo reboot 重启 打开终端:ctrl+alt+t~ :家目录 用户的工作目录 /home/linux/ :根目录 ls (list):列出当前目录下的内容ls -a:查看所有的内容(包括隐藏文件)ls -l:查看所有文件的详细信息d rwx r-x r-- linux linu
2016-04-20 20:01:40
490
原创 C语音知识点整理
考点:逗号分隔符x=(y=4,z=16,k=32) x的值为32 main(){char str[][10]={“china”,”beijing”},*p=str;printf(“%s\n”,p+10);}程序运行结果是beijing考点是:每行开辟的空间没有赋值则给‘ ’所以+10之后一个刚好到beijing。 考点:数组指针的应用int c[4
2016-04-20 20:00:21
1243
转载 typedef与typedef struct用法详解
typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。本文下面将竭尽全力来揭示 typedef 强大功能以及如何避免一些常见的陷阱。1. 定义易于记忆的类型名typedef 使用最多的地方是创建易于记
2016-04-20 19:57:29
588
转载 牛人的linux学习四部曲
作为一个菜鸟,整天网上查找学习linux的方法和书籍是一件非常痛苦的事,难得身边能有高人指点一二,对此,希望和这样的菜鸟们一起分享下一个很好的linux学习方法。 一.新手上路 这一菜鸟阶段最大的问题是如何正确安装一个linux发行版,linux作为开源的系统,甚至可以说是众多GNU软件的展示平台,相对由商业公司发行的WINDOWS,存在许多不同发行版。这里先说明
2015-12-23 23:31:20
1119
转载 linux学习书籍和路线推荐
转载自:http://www.51hei.com/bbs/dpj-26458-1.html从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。为什么选择学习嵌入式?嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,同时也是当今IT领域仅存的几个金领职位之一。当前的中国IT人才面临严
2015-12-23 23:29:36
1397
转载 Linux学习第二篇
第二,Linux基础命令文件命令,系统命令,网络命令,压缩命令Linux 命令行的功能非常齐全且相当强大,这主要得益于Linux 丰富的命令。本文将分类对常用的Linux 基础命令进行介绍,学会这些命令的使用,你将能够在Linux 命令行操作中游刃有余。1.文件相关命令Linux 中常用的文件相关命令分为文件管理和文件处理两部分文件管理1. pwd
2015-12-23 23:22:55
496
转载 JZ2440学习笔记,第四部分,移植uboot2015支持JZ2440的DM9000
JZ2440学习笔记Chili2015.5第四部分,移植uboot2015支持JZ2440的DM90007,修改uboot支持DM9000Uboot 内核已经支持DM9000网口,先打开DM9000的驱动看看,因为我们看电路图知道DM9000通过内存接口连到了JZ2440上,在Dm9000x.c (u-boot-2015.04-rc4\u-boot-2015.04-
2015-12-23 23:16:42
1878
转载 JZ2440学习笔记,第三部分,移植uboot2015支持JZ2440的nand flash
JZ2440学习笔记Chili2015.5第三部分,移植uboot2015支持JZ2440的nand flash6,修改uboot支持nand flash 与nor flash的初始化类似,nand flash初始化在文件u-boot-2015.04-rc4\u-boot-2015.04-rc4-my2440\arch\arm\lib\Board.c 中的函数voi
2015-12-23 23:15:20
2094
转载 JZ2440学习笔记,第二部分,移植uboot2015支持JZ2440的nor flash
JZ2440学习笔记Chili2015.5第二部分,移植uboot2015支持JZ2440的nor flash5,修改uboot支持nor flash继续跟着韦老师手册或者视频所讲的uboot启动流程走,我们发现nor flash的初始化在文件u-boot-2015.04-rc4\u-boot-2015.04-rc4-my2440\arch\arm\lib\Boar
2015-12-23 23:12:52
1895
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人