51CTO博客开发
1. ad control register: select the pin to be converted clkdev start mode etc. 2. ad golbal date register:the result of conversion. 3. ad status register: the status of overrun and interrupt. 4. a
/**************************************************************************** * $Id:: ssp.c 3635 2010-06-02 00:31:46Z usb00423 &nbs
串口和pc机通信用到的寄存器: 通信函数: LCR意义:
1. IOCON->PIOx_x:引脚配置寄存器。 2. GPIOx->DIR:输入输出选择引脚,0表示输入,1表示输出。 3. GPIOx->DATA:数据寄存器。 跑马灯程序: 按键控制led灯: 中断相关寄存器: GPIOx-&
1. 时序 PDRUNCFG:掉电配置寄存器,给其bit5位写0就是给系统振荡器上电。 SYSOSCCTRL:系统震荡控制寄存器,bit0表示振荡器是否被旁路,0不被旁路。bit1表示外部晶振的 频率范围 0: 1~20MZ , 1: 15~50MZ. pll的输出计
在linux驱动中,可以使用等待队列来实现阻塞进程的唤醒。 1. 定义等待队列头 wait_queue_head_t mqh; 2. 初始化等待队列 init_waitqueue_head(&mqh); 也可以将以上两步合并成:DECLARE_WAITQUEUE_HREAD(name); 3.定义等待队列
原子操作是指在执行的过程中不会被别的代码路径所中断的操作。 1.整型原子操作 1.1 设置源自变量的值 void atomic_set(atomic_t *v,int i); //设置原子变量的的值为i atomic_t v = ATOMIC_INIT(0
模块的角色是扩展内核的功能;模块化的代码在内核空间运行,驱动的两个任务:模块中的一些函数作为系统调用的一部分执行,一些负责中断处理。 2.3.2 内核的并发 linux的内核代码和驱动代码必须是可重入的--他们必须能够在多个上下文中运行。数据结构必须小心的设计以保证多个多个执行线程分开,并且代码必须小心的存取共享数据,避免数据的破坏。 2.3.3 当前进程 &nbs
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号