摘要:
名称:sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型:Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );int scanf( const char *format [,argument]... ); 说明:sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者... 阅读全文
摘要:
//led.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/ioctl.h>int main(int argc, char **argv){int on;int led_no;int fd;/* 检查led控制的两个参数,如果没有参数输入则退出。*/if (... 阅读全文
摘要:
这两个功能的实现都是通过设置启动脚本来实现的。启动脚本的一般存放路径是 /etc/init.d/rcS (rcS即脚本文件),自启动应用程序一般放置于 /etc/rc.d/init.d 目录下。 我们需要用vi命令对rcS进行编辑,当然也可以通过其他方式对其进行覆盖。 在脚本中自启动应用程序示例:#各种服务程序/etc/rc.d/init.d/netd start #telnet/ftp 服务/e... 阅读全文
摘要:
最近在做一个移植UCOS-II的任务,遇到了semihosting的问题,现在把这个问题的解决办法总结一下。 Step 1 : 用#pragma import(__use_no_semihosting_swi)保证用户程序不调用semihostSWI; 此后,link时会有 Error :L6200E:Symbol __semihosting_swi_guard multiply defined ... 阅读全文
摘要:
Devfs,也叫设备文件系统(Device Filesystem),设计它的唯一目的就是提供一个新的(更理性的)方式管理通常位于 /dev 的所有块设备和字符设备。您也许知道,典型的 /dev 树包含数百个块特殊文件和字符特殊文件,它们全都在根文件系统上。每个特殊文件都可以让用户空间进程轻松地与内核设备实现交互。举例来说,通过对这些特殊文件执行操作,您的 X 服务器就能够访问视频硬件, fsck 可以执行文件系统检验, lpd 可以通过并行端口向打印机发送数据。 阅读全文
摘要:
与传统的4/8位单片机相比,ARM的性能和处理能力当然是遥遥领先的,但与之相应,ARM的系统设计复杂度和难度,较之传统的设计方法也大大提升了。本文旨在通过讨论系统程序设计中的几个基本方面,来说明基于ARM的嵌入式系统程序开发的一些特点,并提出和解决了一些常见的问题。 本文分成几个相对独立的专题陆续刊载。 (一) 嵌入式程序开发基本概念 (二) 系统的初始化过程 (三) 如何满足嵌入式系统的... 阅读全文
摘要:
//4led.c#include <linux/config.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/miscdevice.h>#include <linux/sched.h>#incl... 阅读全文
摘要:
2.4内核引入优点:设备初始化时在/dev下创建设备文件,卸载时候删除可以指定设备名,所有者,权位,可以不需要分配主设备号static devfs_handle_t devfs_handle;static int __init xxx_init(void){int ret;int i;ret = register_chrdev(XXX_MAJOR,DEVICE_NAME, &xxx_fop... 阅读全文
摘要:
clock部分比较容易,现在按照datasheet的思路梳理一下。 一、对clock的基本认识 第七部分是“clock & power management”,总结如下: 1 s3c2410的clock & power management模块包含三个部分:clock control、usb control、power control。现在的关注点是cl... 阅读全文
摘要:
USB规范定义function 为主机提供单个功能的设备。 hub是一个包含有一个或多个到USB设备的接口或内部连接的设备。同时这个设备还带有使该设备能与每个外设通信的硬件设施。集线器重复接收通信,同时也有处理以下状况的能力;管理电源、发送和响应状态和控制消息以及防止全速数据输出到低速设备。 device是一个function(功能)或一个hub(集线器),除了复合设备(复合设备有一个集线器和一个... 阅读全文
摘要:
一、typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。二、#define... 阅读全文
摘要:
U32 downloadAddress = 0; void main(void){ void (*startp)(void); //定义一个函数指针 startp = (void (*)(void))downloadAddress; //把一个32位的数转换成指针,且指针类型为函数指针。然后把这个指针付给; 前面定义好的函数指针 (*startp)(); //用函数指针执行指定地址的代码} 阅读全文
摘要:
在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 阅读全文
摘要:
在这一章里将提供三个范例来说明如何使用 µC/OS-II。笔者之所以在本书一开始就写这一章是为了让读者尽快开始使用 µC/OS-II。在开始讲述这些例子之前,笔者想先说明一些在这本书里的约定。 阅读全文
摘要:
在进入正题之前,我想先把ARM920T的异常向量表(Exception Vectors)做一个简短的介绍。:]ARM920T的异常向量表有两种存放方式,一种是低端存放(从0x00000000处开始存放),另一种是高端存放(从0xfff000000处开始存放)。关于为什么要分两种方式进行存放这点我将在介绍MMU的文章中进行说明,本文采用低端模式。ARM920T能处理有8个异常,他们分别是:Reset... 阅读全文
摘要:
MMU,全称Memory Manage Unit, 中文名——存储器管理单元。
阅读全文