ARM/linux
任财
这个作者很懒,什么都没留下…
展开
-
STM8S1003 模拟SPI 驱动 SI4432
上关于stm8s1003 驱动si4432的 驱动不是很多 ,我也是弄了大半天才可以和si4432 spi驱动成功。 接下来要做无线收发和组网。暂时先贴 spi驱动的spi模拟方式:main.c[cpp] view plaincopy#include "stm8s.h" #include "mytype.h"转载 2014-07-08 18:59:06 · 3617 阅读 · 1 评论 -
Linux 共享内存 .
一、概念共享内存是被多个进程共享的一部分物理内存,是进程间共享数据的最快的一种方法。 二、实现分为两个步骤:1、创建共享内存。2、映射共享内存。1、创建 int shmget(key_t key, int size, int shmflg)当key的取值为 IPC_PRIVATE 时,将创建一块新的共享内存。shmflg至少设为S_IR转载 2013-03-27 11:33:36 · 568 阅读 · 0 评论 -
UDP 聊天室 .
学过Socket编程,连个UDP聊天室也没写过实在是说不过去了。写个简单的聊天室。客户端通过向服务器发送数据进行对话。所有信息在服务端显示。 运行效果: 服务端:[plain] view plaincopyprint?[fsy@localhost my_socket]$ ./udps create socket. bind address to转载 2013-03-27 11:17:59 · 663 阅读 · 0 评论 -
Linux网络通信(二)Socket编写TCP/UDP
一、通信流程 TCP: UDP: 部分函数知识可以参考之前写的 Linux 网络编程——TCP TCP通信: 客户端:[cpp] view plaincopyprint?#include #include #include #include #include #in转载 2013-03-19 19:41:35 · 745 阅读 · 0 评论 -
STM32学习笔记——GPIO之从库函数到寄存器 .
from:http://blog.csdn.net/fovwin/article/details/8810703例子为单片机的“Hello World”级的流水灯实验——虽然只有一个,其中并不是将完整的代码给出,只是给出关键部分来说明“如何调用ST公司的的库来完成对硬件的控制,以及对库文件代码进行跟踪和分析至寄存器级”。所以从第一段代码往下看就可以了,要用到的函数和变量大部分会说明,至于寄存器转载 2013-09-22 16:23:54 · 1364 阅读 · 0 评论 -
ARM Linux 中断向量表建立流程 .
一般编写arm的裸机程序的时候,创建中断向量表就把它放在0x00000000~0x0000001c中,一般都放在这个位置上。但是中断向量表也可以放在0xffff0000~0xffff001c中,知道这是怎么设置的么?开始看到的时候真的有点奇怪,因为在学习arm的时候,根本没去看arm中的协处理器CP15中的c1控制寄存器中的v位来控制,我们一般都使用默认的值0,则必须将中断向量表放在0x00000转载 2013-08-30 18:29:44 · 4706 阅读 · 0 评论 -
linux网络编程基础(一)
一、数据存储顺序:大端和小端 高位字节存储高字节称为小端模式,通常都计算机采用这个模式存储。而网络则采用大端传输。所以需要转换 面试有时会出这么个题:写一个程序判断程序的存储是大端还是小端? 程序的原理见下图: [cpp] view plaincopyprint?#include #inc转载 2013-03-19 19:39:22 · 624 阅读 · 0 评论 -
Linux网络编程(三) IO非阻塞操作 .
IO非阻塞操作 sock的方法不一定非得是阻塞的,也可以非阻塞的操作。有两种方法分别为设置fcntl 和设置相应函数的参数。 服务端:[cpp] view plaincopyprint?#include #include #include #include #include #include转载 2013-03-27 11:20:14 · 604 阅读 · 0 评论 -
Linux进程间通信(一)——管道、信号量 .
一、Linux进程间通信方式 :有六种方式在两个程序间传递信息 1、信号( Singal ) 2、管道 ( Pipe ) 及有名管道 3、信号量 ( Semaphore ) 4、共享内存 ( SharedMessage) 5、消息队列 ( MessageQueue ) 6、套接字 (转载 2013-03-27 11:24:41 · 641 阅读 · 0 评论 -
Source Insight
from:http://blog.csdn.net/cemer815/article/details/7338505目录(?)[+]Source Insight Marco研究语法篇source insight研究正则表达式篇source insight研究快捷键篇转source insight研究配置篇转转Source Insight使用技巧转载 2013-11-17 16:50:58 · 7884 阅读 · 0 评论 -
分析TCP/IP协议栈代码之UDP(STM32平台) .
from:http://blog.csdn.net/fovwin/article/details/97963591. UDP介绍 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个 UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系。转载 2014-03-04 12:27:50 · 2425 阅读 · 0 评论 -
嵌入式系统设计师考试复习笔记之存储管理篇 .
以下是转帖一位网友的嵌考笔记嵌入式系统设计师考试复习笔记之存储管理篇欧浩源([email protected]) 20080721引言2007年下半年通过了嵌入式系统设计师的考试,一大堆的复习资料都不知道扔那里好,卖掉又有点可惜,送人又没人要。与其让当时的复习笔记沉沦书架底部,还不如整理一下让大家评论评论。2008年11月的考试也快到了,如果能帮到有需要的人,那我真是乐坏了。看看06和0转载 2014-06-08 15:20:06 · 1046 阅读 · 0 评论 -
嵌入式系统设计师考试笔记之嵌入式系统基础知识
以下是转帖一位网友的嵌考笔记嵌入式系统设计师考试笔记之嵌入式系统基础知识欧浩源([email protected]) 20080818 一、引言自《嵌入式系统设计师考试复习笔记之存储管理篇》在嵌入式在线的博客出现后,意外的得到很多朋友的关注和评论,收到不少朋友的邮件,问一些有关考试的问题,希望得到我的复习笔记的其他部分。我非常感谢他们,他们的热切关注,使我有了继续往下写的无限动力,使转载 2014-06-08 15:21:37 · 1486 阅读 · 0 评论 -
嵌入式系统设计师考试笔记之电子电路设计基础、微处理器
以下是转帖一位网友的嵌考笔记嵌入式系统设计师考试笔记之电子电路设计基础欧浩源([email protected]) 20080930 一、引言 在嵌入式系统的硬件设计中,嵌入式微处理器和外围设备接口技术是两个最为核心的部分,然而支撑这个两个部分的基础确实电子电路的基本技术。任何一个嵌入式系统的设计都离不开电子电路的设计。作为嵌入式系统设计师的考试,对这方面的考查或多或少有几题,但转载 2014-06-08 15:18:28 · 1604 阅读 · 0 评论 -
csr 蓝牙
sink与source的断开和连接 sink与source的断开可以选择如下两种方式:法1: StreamDisconnect(mic_source_a, spkr_sink_a);法2: StreamDisconnect(0, spkr_sink_a); StreamDisconnect(mic_source_a, 0);在test mode时,连接mi转载 2014-03-20 17:38:22 · 1474 阅读 · 0 评论 -
蓝牙芯片
基本上,读过datasheet都应该知道,CSR拥有或者曾经拥有如下三种芯片,HCI ROM,HCI RFCOMM ROM,Full embeded solution. 这三种芯片的区别在于支持的蓝牙协议栈的层次不同。 HCI ROM: 这种芯片支持到HCI 接口部分,硬件HCI接口一般使用UART/USB/SDIO, UART最为常用,HCI以下包含LMP,LL,RF部分,其中的软转载 2014-03-14 11:14:46 · 4921 阅读 · 0 评论 -
GPS nmealib学习笔记 .
from:http://blog.csdn.net/xukai871105/article/details/128344210.nmealib简介 nmealib是一个基于C语言的用于nmea协议的开源库。虽然nmea体积小巧,但是却具备了不少功能。 分析NMEA语句并把结果保存在合适的C语言结构体中。 除了解析NMEA语句之外,还可以产生NMEA语句转载 2014-03-05 20:22:49 · 6381 阅读 · 1 评论 -
linux下串口gps应用
from:http://blog.chinaunix.net/uid-20698826-id-3366846.htmllinux串口gps使用总结 一、Gps数据格式标准(nmea0183)http://en.wikipedia.org/wiki/NMEA这次只要获取经纬度信息,所有主要针对下面2个Gps命令(1)位置信息(GGA) $GPGGA、、、、、、、、、、M, 、*hh UTC时间,转载 2014-03-05 20:00:02 · 2886 阅读 · 0 评论 -
分析TCP/IP协议栈代码之TCP(STM32平台) .
from:http://blog.csdn.net/fovwin/article/details/88875881. TCP介绍TCP与UDP都属于传输层,但是与UDP不同的是,TCP是面向连接的,可靠的传输协议。ps:需要找几篇文章来看看两者的不同和各自的用武之地了,虽然对下面的代码分析之后对何为“面向连接”,何为“可靠”有一个具象的了解,但是不够全面和系统,比如何时采用TCP,何时转载 2014-03-04 12:29:49 · 19445 阅读 · 0 评论 -
Linux 信号通信 .
一、信号 信号(signal)机制是Unix进程间通信的一种机制。很多条件可以产生信号。 进程可以用kill 函数将信号发送给另一个进程,用户可以用kill命令发送信号。 信号有三种处理方式:1、忽略信号。通常情况下都按这种方式进行处理,但SIGKILL和SIGSTOP不能被忽略。2、执行用户定义的动作。调用用户定义的函数,执行用户希望的处理。3、执行系统默认转载 2013-03-27 11:34:14 · 656 阅读 · 0 评论 -
linux文件读写 文件锁、select、poll .
一、文件锁 文件锁用于多个用户共同使用或操作同一个文件。有读锁的时候可以再加读锁,不能再加写锁。有写锁的时候,不能加任何锁,加读锁时,该描述符必须是读打开,加写锁时,该描述符必须是写打开,且只在进程间有用。 重写的上锁方法[cpp] view plaincopyprint?//lock.c int lock_set(int fd,i转载 2013-03-27 11:30:09 · 870 阅读 · 0 评论 -
Linux消息队列 .
一、概念 消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向中按照一定的规则添加新消息;有读权限的进程则可以读走消息。读走就没有了。消息队列是随内核持续的。 只有内核重启或人工删除时,该消息才会被删除。在系统范围内,消息队列与键值唯一对应。二、步骤及思路1、取得键值2、打开、创建消息队列3、发送消转载 2013-03-27 11:32:06 · 704 阅读 · 0 评论 -
linux驱动面试常见题目
1. linux内核里面,内存申请有哪几个函数,各自的区别?Kmalloc() __get_free_page() mempool_create() 2. IRQ和FIQ有什么区别,在CPU里面是是怎么做的? 3. int *a;char *b;a 和 b本身是什么类型?a、b里面本身存放的只是一个地址,难道是这两个地址有不同么?转载 2013-07-28 14:16:59 · 1731 阅读 · 0 评论 -
linux中断处理------顶半部与底半部
转自http://my.oschina.net/fzliu/blog/33028尽管有些设备仅通过它们的I/O寄存器就可以得到控制,但现实中的大部分设备却比这复杂一些。设备需要与外部世界打交道,如旋转的磁盘,绕卷的磁带,远距离连接的电缆等。这些设备的许多工作通常是在与处理器完全不同的时间周期内完成的,并且总是要比处理器慢。这种让处理器等待外部事件的情况总是不能令人满意,所以必须有一种方法可转载 2013-07-27 12:07:49 · 719 阅读 · 0 评论 -
Linux 与 Windows
在讨论 Linux 与 Windows 有多大不同之前,让我们先来看看这两者有哪些相似之处。用户和组Linux和Windows都是多用户操作系统。都可以由许多不同的用户来使用,为每个用户提供单独的环境和资源。基于用户身份来控制安全性。都可以以组成员的方式来控制资源的访问权限,这样在用户数目较大时可以不必为每一个帐号设置权限。 用户和组可以集中管理,让多个服务器共享相同的用户和身转载 2013-04-25 19:55:21 · 633 阅读 · 0 评论 -
uboot移植过程
1.修改Makefile首先给要建立的S3C2410开发板取名为TE2410, 移植uboot时以smdk2410为模板,修改Makefile#tar xvjf u-boot-1.1.3.tar.bz2#cd u-boot-1.1.3#vi Makefile scb9328_config : unconfig @./mkconfig $(@:_confi转载 2013-07-23 11:07:44 · 685 阅读 · 0 评论 -
GDT和IDT的初始化
内存管理时,不让多进程的程序出现内存冲突的一解决方案是Segmentation。4GB的内存可以任何分割,每块的初始地址都是0。另外还有一种复杂的内存管理方案,既Paging,目前主流的操作系统都是采用这种方式。本文的OS为了实现简单,只采用Segmentation方案。我们规定1个Segmentation的信息有:l Sizel 初始地址l转载 2013-07-27 12:19:06 · 1450 阅读 · 0 评论 -
Linux 多线程学习 .
一、多线程 VS 多进程 和进程相比,线程有很多优势。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护代码段和数据。而运行于一个进程中的多个线程,他们之间使用相同的地址空间。正是这样,同一进程下的线程之间共享数据空间,数据可以相互使用,并且线程间切换也要更快些,可以更有效的利用CPU。二、程序设计[注] 头文件 编译时要加载动态转载 2013-03-27 11:31:23 · 556 阅读 · 0 评论 -
进程控制 .
1、进程调用的头文件为。2、pid_t getpid() 获取本进程ID。pid_t getppid()获取父进程ID。 3、fork()返回值:在父进程中,返回新创建的子进程的PID在子进程中,返回0出现错误,返回负值4、 fork与vfork的区别forkvfork转载 2013-03-27 11:37:24 · 690 阅读 · 0 评论 -
Linux 网络编程——TCP
一、TCP通信步骤TCP服务器部分:1、调用函数socket(),创建一个socket2、设置sockaddr_in信息,如要连接服务器的IP和端口等属性3、调用函数bind(),绑定IP地址、端口等信息到socket上4、调用函数listen(),设置允许的最大连接数5、调用函数accept(),等待来自客户端的连接请求6、调用函数send() 和 recv(转载 2013-03-20 13:12:48 · 545 阅读 · 0 评论 -
Linux进程间通信(二)——共享内存、消息队列 .
一、共享内存 最高效的进程间通信机制。多个进程共享一段内存。需要依靠某种同步机制,如互斥锁或信号量。 通常步骤为:创建 -> 映射 -> 使用 -> 撤销映射 ->删除 相关函数可以参考:Linux 共享内存[cpp] view plaincopyprint?转载 2013-03-27 11:23:34 · 774 阅读 · 0 评论 -
linux多进程——进程组与会话、守护进程、信号通信 .
[+]killraise 发信号一些相关知识可以参考 Linux 信号通信pause 将进程挂起直到捕捉到信号为止举例1 一、进程组与会话 进程组:是一个或多个进程的集合。可以调用 getpgid(0) 或 getpgrp() 来得到。进程组ID为组长的进程ID。只要进程组中有一个进程存在,进程组就存在,与组长进程是否终止无关。调用 setpgid() 加入一个现有的转载 2013-03-27 11:27:19 · 633 阅读 · 0 评论 -
Linux 管道通信 .
一、定义 管道是单向的、先进先出的。它将一个程序的输入和另一个程序的输出连接起来。数据被一个进程读出后,将被从管道中删除。分为无名和有名管道两种。前者用于父进程和子进程间的通信,后者用于同一系统的两个进程间通信。 二、无名管道 int pipe(int fd[2]); 其中,fd[0]用于读管道,fd[1]用于写管道。若成功则返回零,否则返回-1,错转载 2013-03-27 11:34:49 · 646 阅读 · 0 评论 -
Linux网络编程(四) select多路复用 .
TCP虽然可以实现 IO非阻塞操作,但在实际应用时会对资源是否准备完毕进行循环测试,增加了不必要的CPU占用。 为了解决这种问题,应用多路复用的知识,select()监听信号。相关知识可以参考 linux文件读写 文件锁 select poll 。 服务端: [cpp] view plaincopyprint?#in转载 2013-03-27 11:19:29 · 562 阅读 · 0 评论 -
linux多线程(二) .
一、多线程的创建和启动 一个多线程的程序是通过先创建后启用的方式运行起来的。可以在创建的时候传递参数,也可以在结束的时候返回参数。注意当第二个进程sleep时,第一个线程也在运行。当线程退出时,才继续向下运行主程序。上一个线程未退出,是不会向下执行主程序的。 [cpp] view plaincopyprint?#include #转载 2013-03-27 11:22:13 · 537 阅读 · 0 评论 -
net_device
net_device结构保存与网络设备相关的所有信息。每一个网络设备都对应一个这样的结构,包括真实设备(例如以太网卡)和虚拟设备(比如bonding或VLAN)。Bonding,也被称作EtherChannel(Cisco的术语)和trunking(Sun的术语),允许把一定数量的接口组合起来当作一个新的设备。这个特性在系统需要把多个点对点设备组合起来以获取更高带宽时有用。新设备的速度可以转载 2013-07-27 12:17:51 · 993 阅读 · 0 评论