<4D F736F F D20C7B6C8EBCABDCFB5CDB3BFAAB7A2CAB5D1E9CBC42E646F63>

Size: px
Start display at page:

Download "<4D F736F F D20C7B6C8EBCABDCFB5CDB3BFAAB7A2CAB5D1E9CBC42E646F63>"

Transcription

1 嵌入式系统实验四 Linux 下设备驱动程序的开发 3.1 设备驱动程序的开发流程 进行嵌入式 Linux 系统的开发, 很大的工作量是为各种设备编写驱动程序 在 ARM 平台上开发嵌入式 Linux 的设备驱动程序与在其他平台上开发是一样的 总的来说, 实现一个嵌入式 Linux 设备驱动的大致流程如下 : (1) 查看原理图, 理解设备的工作原理 (2) 定义主设备号 (3) 在驱动程序中实现驱动的初始化 如果驱动程序采用模块的方式, 则要实现模块初始化 (4) 设计所要实现的文件操作, 定义 file_operations 结构 (5) 实现中断服务 ( 中断并不是每个设备驱动所必须的 ) (6) 编译该驱动程序到内核中, 或者用 insmod 命令加载 (7) 测试该设备 3.2 linux 下字符设备的驱动开发实例 ----LED 驱动 ( 可参考 FS2410P 实验指导手册 v2.1.2.pdf, ) (1) 实验内容 :4 个 LED 灯轮流闪烁 本节要求实现在一个字符设备驱动里面实现对 GPIO 端口的操作 在模块加载的时候跑马灯运行起来 模块卸载的时候, 跑马灯停止 FS2410P 上的 4 个 LED 指示灯由 4 个 I/O 口控制, 它们分别是 :GPF4~GPF7, 输出低电平时候, 相应的 LED 指示灯亮 (2)LED 的原理图 FS2410P 带有 4 个用户可编程 I/O 方式 LED, 如图 1 所示 LED 硬件原理图, 下表为 LED 对应的 I/O 口 表 1 用户指示灯占用 CPU 资源列表 序号名字 CPU 端口资源 1 LED1 GPF4 2 LED2 GPF5 3 LED3 GPF6

2 4 LED4 GPF7 (3) LED 驱动源代码及说明 图 1 LED 原理图 在 /s3c2410 下新建一个目录 :gpiodrv #mkdir /s3c2410/gpiodrv #cd /s3c2410/gpiodrv 在 /s3c2410/gpiodrv 目录下用 vi 编辑器编写符合上面功能的驱动源程序 gpiodrv.c #cd /s3c2410/gpiodrv #vi gpiodrv.c #include <linux/config.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/iobuf.h> #include <linux/major.h> #include <asm/uaccess.h> #include <asm/hardware.h> #include <asm/arch/cpu_s3c2410.h> #include <asm/io.h> #include <linux/vmalloc.h> #include <linux/delay.h> #define IOPORT_MAJOR 220 int magic_leds_open(struct inode *inode, struct file *filp);

3 int magic_leds_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); int magic_leds_release(struct inode *inode, struct file *filp); static struct file_operations magic_leds_fops = ioctl: magic_leds_ioctl, open: magic_leds_open, release: magic_leds_release, ; #define LED1_ON() (GPFDAT &= ~0x10) #define LED2_ON() (GPFDAT &= ~0x20) #define LED3_ON() (GPFDAT &= ~0x40) #define LED4_ON() (GPFDAT &= ~0x80) #define LED1_OFF() (GPFDAT = 0x10) #define LED2_OFF() (GPFDAT = 0x20) #define LED3_OFF() (GPFDAT = 0x40) #define LED4_OFF() (GPFDAT = 0x80) static int ledstatus; void LedSet(int led) ledstatus = led; if (ledstatus & 1) LED1_ON(); else LED1_OFF(); if (ledstatus & 2) LED2_ON(); else LED2_OFF(); if (ledstatus & 4) LED3_ON(); else LED3_OFF(); if (ledstatus & 8) LED4_ON(); else LED4_OFF();

4 void LedDisy(void) LedSet(0x08); udelay(0x500000); LedSet(0x04); udelay(0x500000); LedSet(0x02); udelay(0x500000); LedSet(0x01); udelay(0x500000); LedSet(0x02); udelay(0x500000); LedSet(0x04); udelay(0x500000); LedSet(0x08); udelay(0x500000); static int init magic_leds_init(void) int result = 0; printk("magic_leds_init\n"); result = register_chrdev(ioport_major, "gpio", &magic_leds_fops); if (result < 0) printk( "Failed to register major.\n"); return result; printk("success to register\n"); return 0; int magic_leds_open(struct inode *inode, struct file *filp) GPFCON = 0x5500; GPFUP = 0xff; printk( "open gpio devices\n"); return 0;

5 void exit magic_leds_exit(void) unregister_chrdev(ioport_major, "gpio"); int exit magic_leds_release(struct inode *inode, struct file *filp) printk("release this device\n"); return 0; int magic_leds_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) int err = 0; if (cmd == 1) while(arg--) LedDisy(); printk("..."); printk("\n"); return 0; return err; module_init(magic_leds_init); module_exit(magic_leds_exit); (3) 编译安装 LED 驱动 同样, 在 /s3c2410/gpiodrv 目录下用 vi 编辑器编写该驱动程序的 Makefile 文件 :(Makefile 的编写可参考 Makefile 中文教程.pdf) #vi Makefile

6 输入以下内容 : CROSS = arm-linux-gcc CFLAGS=-D KERNEL CFLAGS+=-DMODULE CFLAGS+=-I/s3c2410/ rmk7/include CFLAGS+=-I/s3c2410/ rmk7/include/linux CFLAGS+=-I/usr/local/arm/2.95.3/include CFLAGS+=-Wall -Wstrict-prototypes -Wno-trigraphs -Os -mapcs CFLAGS+=-fno-strict-aliasing -fno-common -fno-common -pipe -mapcs-32 CFLAGS+=-march=armv4 -mtune=arm9tdmi -mshort-load-bytes -msoft-float CFLAGS+=-DKBUILD_BASENAME=gpiodrv all: gpiodrv.o gpiodrv.o: gpiodrv.c $(CROSS) $(CFLAGS) -o gpiodrv.o -c gpiodrv.c clean: -rm -f $(EXEC) *.o *~ core 将 gpiodrv.c 和 Makefile 这个放置在同一个新建目录下 gpiodrv 下, 进入这个目录, 输入 make 后, 编绎成功后将在这个目录下生成一个 gpiodrv.o 文件 #cd /s3c2410/gpiodrv #make 3.3 linux 下字符设备的驱动开发实例 测试 LED (1) 在 /s3c2410/gpiodrv 目录下用 vi 编辑器编写 led 驱动程序相应的测试程序 gpio_test.c #vi gpio_test.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcnt1.h> #include <errno.h> #include <linux/delay.h> #include <sys/ioctl.h> int main(int argc, char **argv) int i; int fd;

7 fd = open("/dev/gpio", 0); if (fd < 0) perror("failed to open device"); exit(1); while(1) printf("please select number to run program\n"); printf("1:led on \n2:quit"); scanf("%d",&val); if(val == 1) ioct1(fd,1,10); else if(val == 2) close(fd); return 0; 编译 gpio_test.c, 得到可执行文件 gpio_test 即用下面的命令 : #arm-linux-gcc o gpio_test gpio_test.c 3.4 linux 下字符设备的驱动开发实例 实验步骤 ( 也可参考 FS2410P 实验指导手册 v2.1.2.pdf, 上的方法 ) (1)PC 机进入 LINUX 系统, 配置好 minicom, 连接好串口线, 让 FS2410P 教学实验平台进入 LINUX 环境, 利用 minicom 来显示 (2) 将编绎生成的 gpiodrv.o 和 gpio_test 用 NFS mount 到 /tmp 目录下 ( 方法参考实验三 --- 通过 NFS 进入映射 ) # mount :/s3c2410 /tmp # cd /tmp # cd /gpiodrv (3) 加载设备驱动 gpiodrv.o 模块 : insmod gpiodrv.o 如果加载成功, 可以通过 cat /proc/devices 命令查看该设备的相关信息 卸载该设备驱动模块的命令是 :rmmod gpiodrv (4) 建立 gpio 设备节点 :mknod /dev/gpio c /dev/gpio 为该设备驱动程序的设备名,C 表明该设备为字符设备,220 为该设备的主设备好,0 为从设备号

8 (5) 执行 gpio_test 程序 :./gpio_test (6) 在 minicon 终端选择 1, 回车, 可以看到 4 个 LED 灯轮流闪烁 选择 2, 则退出程序的运行 具体可看下图 (7) 将应用程序添加根文件系统, 并烧写到开发板 将 FS2410XP_camare_demo.cramfs 拷贝到 /s3c2410 目录下 在该目录下建立两个文件 : # cd /s3c2410/ # mkdir chang # mkdir guo 将 FS2410XP_camare_demo.cramfs 挂接到 chang 目录 # mount -o loop FS2410XP_camare_demo.cramfs chang 将 chang 目录下的内容压缩 # cd chang # tar -cvf /s3c2410/1.tar./ 这时, 将在 chang 的目录产生一个 1.tar 的包 # cd.. # mv 1.tar guo # cd guo # tar -xvf 1.tar

9 # rm 1.tar rm: 是否删除一般文件 1.tar? y 将自已的 gpiodrv.o 和 gpio_test 拷贝到相应的目录下 将 gpiodrv.o 拷贝到 guo/usr/ 目录下将 gpio_test 拷贝到 guo/bin 下 现在开始制作 cramfs 根文件系统./mkcramfs /s3c2410/guo FS2410XP_camare_demo.cramfs 下载 FS2410XP_camare_demo.cramfs 根文件系统到开发板 : 使用 tftpcmd 网络传输, 设置宿主机 IP 地址, 将其地址与开发平台的 IP 地址设置在同一网段内 这里, 将 PC 的 IP 设为 并把 tftpcmd 复制到 /bin 文件夹下 #cd /s3c2410/ guo 新建一个 down 文件 #vi down tftpcmd put FS2410XP_camare_demo.cramfs 改变 down 的属性 #chmod 777 down 改变 tftpcmd 的属性 #chmod 777 /bin/tftpcmd 将开发板与 PC 机用交叉网线连接好, 复位开发板, 按住 A 键, 进入 BIOS 命令行状态提示符 :(minicom) \>netload #./down 或是双击 down 批处理文件, 选择在终端运行, 可以看到内核映像下载到了开发板 传输完后, 再输入命令 nfprog, 然后回车, 然后输入 2 选择第二个区块, 输入 Y 确认将文件烧写到 nandflash 中 重复操作 (3),(4),(5),(6), 可看到实验结果 Linux 设备驱动程序介绍 Linux 操作系统将所有的设备 ( 而不仅是存储器里的文件 ) 全部都看成文件, 都纳入文件系统的范畴, 都通过文件的操作界面进行操作 这意味着 : (l) 每一个设备都至少由文件系统的一个文件代表, 因而都有一个 文件名 每个这样的 设备文件 都唯一地确定了系统中地一项设备 应用程序通过设备地文件寻找访问具体地设备, 而设备则象普通文件一样受到文件系统访问权限控制机制地保护 (2) 应用程序通常可以通过系统调用 open() 打开 这个设备文件, 建立起与目标设备的连接 代表着该设备的文件节点中记载着建立这种连接所需的信息 对于执行该应用程序的进程而言, 建立起的连接就表现为一个已经打开的文件 (3) 打开了代表着目标设备的文件, 即建立起与设备的连接后, 就可以通过 read() write() ioctl() 等常规的文件操作对目标设备进行操作

10 Linux 将设备分成两大类 一类是像磁盘那样以记录块或 扇区 为单位, 成块进行输入 / 输出设备, 称为 块设备 ; 另一类是像键盘那样以字符 ( 字节 ) 为单位, 逐个进行输入 / 输出的设备, 称为 字符设备 文件系统通常都建立在块设备上 网路设备是介于块设备和字符设备之间的一种特殊设备 设备文件的属性由三部分信息组成 : 第一部分是文件的类型 (c/b), 第二部分是一个 主设备号, 第三部分是一个 次设备号 其中设备类型和主设备号结合在一起唯一地确定了设备文件地驱动程序及其界面, 而次设备号则说明目标设备是同类设备中的第几个 1 Linux 设备驱动程序概述 在 Linux 操作系统中, 驱动程序是操作系统内核与硬件设备的直接接口, 驱动程序屏蔽了硬件的细节, 驱动程序是内核的一部分, 他完成以下功能 : (l) 对设备初始化和释放 (2) 对设备进行管理, 包括实时参数设置以及提供对设备的操作接口 (3) 读取应用程序传送给设备文件的数据并回送应用程序请求的数据 (4) 检测是处理设备出现的错误 图 1 Linux 内核体系结构 如图 1 所示, 应用程序通过 Linux 的系统调用与内核通信 由于 Linux 中将设备当作文件处理, 所以对设备进行操作的调用和对文件操作的操作类似, 主要包括 open() read() write() ioctl() close() 等 应用程序发出系统调用命令后, 会从用户态转到内核态, 通过内核将 open() 这样的系统调用转换成对物理设备的操作 在 Linux 中通过分层实现对物理设备的调用, 并使得内核的结构清晰, 提高了模块化的独立性

11 2 驱动程序的结构 一般 Linux 设备驱动程序可以分为 3 个主要组成部分 : (1) 自动配置和初始化子程序, 负责检测所要驱动的硬件设备是否存在和能否正常工作 如果设备正常则对这个设备及其相关的设备驱动程序需要的软件状态进行初始化 这部分驱动程序仅在初始化时被调用一次 (2) 服务于 I/O 请求的子程序, 又称为驱动程序的上半部 调用这部分程序是由于系统调用的结果 这部分程序在执行时, 系统仍认为是与进行调用的进程属于同一个进程, 只是由用户态变成了核心态, 具有进行此系统调用的用户程序的运行环境, 因而可以在其中调用 sleep() 等与进程运行环境有关的函数 (3) 中断服务程序, 又称为驱动程序的下半部 在 Linux 系统中并不是直接从中断向量表调用设备驱动程序的中断服务子程序, 而是由 Linux 系统来接收硬件中断, 再由系统调用中断服务子程序 中断可以在任何一个进程运行时产生, 因而在中断服务程序被调用时, 不能依赖于任何进程的状态, 也就不能调用任何与进程运行环境有关的函数 因为设备驱动程序一般支持同一类型的若干设备, 所以一般在系统调用中断服务子程序时, 都带有一个或多个参数, 以唯一标志请求服务的设备 在系统内部,I/O 设备的存 / 取通过一组固定的入口点来进行, 这组入口点是由每个设备的设备驱动程序提供的 具体到 Linux 系统, 设备驱动程序所提供的这组入口点由一个文件操作结构来向系统进行说明 file_operations 结构定义于 linux/fs.h 文件中, 随着内核的不断升级,file_operations 结构也越来越大, 不同版本的内核会稍有不同 struct file_operations struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char *, size_t, loff_t *); ssize_t (*write) (struct file *, const char *, size_t, loff_t *); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *);

12 int (*fsync) (struct file *, struct dentry *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); ; file_operations 结构中的成员全部是函数指针, 所以实质上就是函数跳转表 每个进程对设备的操作, 都会根据 major minor 设备号, 转换成对 file_operations 结构的访问 常用的操作包括以下几种 : lseek, 移动文件指针的位置, 只能用于可以随机存取的设备 read, 进行读操作, 参数 buf 为存放读取结果的缓冲区,count 为所要读取的数据长度 返回值为负表示读取操作发生错误 ; 否则, 返回实际读取的字节数 对于字符型, 要求读取的字节数和返回的实际读取字节数都必须是 inode-i_blksize 的倍数 write, 进行写操作, 与 read 类似 select, 进行选择操作 如果驱动程序没有提供 select 入口,select 操作将会认为已经准备好进行任何的 I/O 操作 ioctl, 进行读 写以外的其他操作, 参数 cmd 为自定义的命令 mmap, 用于把设备的内容映射到地址空间, 一般只有块设备驱动程序使用 open, 打开设备进行 I/O 操作 返回 0 表示成功, 返回负数表示失败 如果驱动程序没有提供 open 入口, 则只要 /dev/device 文件存在就认为打开成功 release, 即 close 操作 在用户自己的驱动程序中, 首先要根据驱动程序的功能, 完成 file_operations 结构中函数实现 不需要的函数接口可以直接在 file_operations 结构中初始化为 NULL file_operations 变量会在驱动程序初始化时, 注册到系统内部 当操作系统对设备进行操作时, 会调用驱动程序注册的 file_operations 结构中的函数指针

13 3 Linux 对中断的处理 在 Linux 系统中, 对中断的处理是属于系统核心部分, 因而如果设备与系统之间以中断方式进行数据交换, 就必须把该设备的驱动程序作为系统核心的一部分 设备驱动程序通过调用 request_irq 函数来申请中断, 通过 free_irq 来释放中断, 它们被定义为 : #include <linux/sched.h> int request_irq(unsigned int irq, void (*handler)(int irq, void dev_id, struct pt_regs *regs), unsigned long flags, const char *device, void *dev_id); void free_irq(unsigned int irq, void *dev_id); 参数 irq 表示所要申请的硬件中断号 ;handler 为向系统登记的中断处理子程序, 中断产生时由系统来调用, 调用时所带参数 irq 为中断号 ;dev_id 为申请时告诉系统的设备标识 ;regs 为中断产生时的寄存器内容 ;device 为设备名, 将会出现在 /proc/interrupts 文件里 ;flag 是申请时的选项, 它决定中断处理程序的一些特性, 其中最重要的是中断处理程序是快速处理程序还是慢速处理程序 快速处理程序运行时, 所有中断都被屏蔽, 而慢速处理程序运行时, 除了正在运行的中断外, 其他中断都没有被屏蔽 在 Linux 系统中, 中断可以被不同的中断处理程序共享 作为系统核心的一部分, 设备驱动程序在申请和释放内存时不是调用 malloc 和 free, 而是 kmalloc 和 kfree, 它们被定义为 : #include <linux/kernel.h> void *kmalloc(unsigned int len, int priority); void kfree(void *obj); 参数 len 为希望申请的字节数 ;obj 为要释放的内存指针 ;priority 为分配内存操作的优先级, 即在没有空闲内存时如何操作, 一般用 GFP_KERNEL 与中断和内存不同, 使用一个没有申请的 I/O 端口不会使系统产生异常, 也就不会导致诸如 segmentation fault 一类的错误发生 任何进程都可以访问任何一个 I/O 端口, 此时系统无法保证对 I/O 端口的操作不会发生冲突, 甚至因此而使系统崩溃, 因此, 在使用 I/O 端口前, 也应该检查此 I/O 端口是否已经有别的程序在使用 若没有, 再把此端口标识为正在使用, 在使用完以后释放它 在设备驱动程序中, 可以调用 printk 来打印一些调试信息, 用法与 printf 类似 Printf 打印的信息不仅出现在屏幕上, 同时还记录在文件 syslog 里

14 4 设备驱动的初始化 设备驱动程序所提供的入口点, 在设备驱动程序初始化时向系统进行登记, 以便系统在适当的时候调用 Linux 系统里, 通过调用 register_chrdev 向系统注册字符型设备驱动程序 register_chrdev 定义为 : #include <linux/fs.h> #include <linux/errno.h> int register_chrdev(unsigned int major, const char *name, struct file_operations *fops); 其中,major 是为设备驱动程序向系统申请的主设备号, 如果为 0, 则系统为此驱动程序动态分配一个主设备号 Name 是设备名 Fops 即上述对各个调用的入口点说明 此函数返回 0 时表示成功 返回 -EINVAL 表示申请的主设备号非法, 一般来说是主设备号大于系统所允许的最大设备号 返回 -EBUSY 表示所申请的主设备号正在被其他设备程序使用 如果动态分配主设备号成功, 此函数将返回所分配的主设备号 如果 register_chrdev 操作成功, 设备名就会出现在 /proc/dvices 文件中 Linux 为每个设备在 /dev 目录中建立一个文件, 若用 ls l 命令列出函数返回值, 则小于 0 表示注册失败 ; 返回 0 或者大于 0 的值表示注册成功 Linux kernel 2.0 支持 128 个主设备号 Linux kernel 2.2 和 2.4 支持 256 个主设备号 (0 和 255 保留 ) 注册以后,Linux 把设备名和主 / 次设备号联系起来 当有对此设备名的访问时,Linux 通过请求访问的设备名得到主 / 次设备号, 然后把此访问分发到对应的设备驱动, 设备驱动再根据次设备号调用不同的函数 当设备驱动模块从 Linux 内核中卸载, 对应的主设备号必须被释放 在模块卸载调用 cleanup_module() 函数时, 应该调用下面的函数卸载设备驱动 : int unregister_chrdev(unsigned int major, const char *name); 此函数的参数为主设备号 major 和设备名 name Linux 内核把 name 和 major 在内核注册的名称对比, 如果不相等, 卸载失败, 并返回 -EINVAL; 如果 major 大于最大的设备号, 也返回 -EINVAL 初始化部分一般还负责给设备驱动程序申请系统资源, 包括内存 中断 时钟 I/O 端口等, 这些资源也可以在 open 子程序或者其他地方申请 这些资源不用时, 应该释放, 以利于资源的共享 设备驱动的初始化函数只要完成的功能是 : (1) 对驱动程序管理的硬件进行必要的初始化 对硬件寄存器进行设置 比如设置中断掩码, 设置串口的工作方式 并口的数据方向等 (2) 初始化设备驱动相关的参数

15 一般说来, 每个设备都要定义一个设备变量, 用以保存设备相关的参数 在这里可以对设置变量中的项进行初始化 (3) 在内核注册设备 Linux 内核通过设备的主设备号和从设备号来访问设备驱动, 每个驱动程序都有唯一的主设备号 设备号可以自动获取, 内核会分配一个独一无二的主设备号, 但这样每次获得的主设备号可能不一样, 设备文件必须重新建立, 所有最好手工给设备分配一个主设备号 可以查看 Linux 文件系统中 /proc 下的 devices 文件, 该文件记录内核中已经使用的主设备号和相应的设备名, 选择一个没有被使用的主设备号, 调用下面的函数来注册设备 : int register_chrdev(unsigned int, const char *, struct filr_operations *) 其中三个参数分别表示主设备号 设备名称和上面定义的 filr_operation 结构地址 该函数是在 /linux/include/linux/fs.h 中定义的 (4) 注册中断 如果设备需要 IRQ 支持, 则要注册中断 注册中断使用函数 : in request_irq(unsigned int irq, void (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *device, void *dev_id); (5) 其他初始化工作 比如给设备分配 I/O 申请 DMA 通道等 若驱动程序是内核的一部分, 则要按如下方式 : int init chr_driver_init(void); 声明, 注意不能缺少 init 在系统启动时会由内核调用 chr_driver_init, 完成驱动程序的初始化 当驱动程序是以模块的形式编写时, 则要按照如下方式 : int init_module(void) 注 : 当运行 insmod 命令插入模块时, 会调用 init_module 函数完成初始化工作

16

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def Kaise s 2410 Board setting [1]. Device Driver Device Driver Linux s Kernel ARM s kernel s3c2410_kernel2.4.18_r1.1_change.tar.bz2 /usr/src (1) #cd /usr/src (2) #tar xfj s3c2410_kernel2.4.18_r1.1_change.tar.bz2

More information

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

嵌入式Linux知识培训

嵌入式Linux知识培训 嵌入式 Linux 知识培训 主要包括以下四部分内容 : 一 嵌入式 Linux 开发的基本知识 二 Linux 下使用 C 语言进行系统开发 三 面向嵌入式 Linux 的 GUI 系统的体系结构及二次开发 四 基于 Linux OS Smart Phone 的体系结构及开发内容 李玉东 第一部分 基础知识 嵌入式 Linux 软件系统的构成 1.BootLoader 2. Kernel 3.FileSystem

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

uClinux for blackfin

uClinux for blackfin uclinux Blackfin support@besovideo.com QQ 21ic http://bbs.21ic.com/club/bbs/bbsview.asp?boardid=51 24! support@besovide o.com R&D BF561 Linux C MemoryMAP 32 X86 *((volatile unsigned short *)(0x10000300))=0xf0c0;

More information

DVK530/531扩展板

DVK530/531扩展板 DVK720 扩展板 驱动移植手册 2014.04.03 V1.0 版权声明 本手册所有权由深圳市微雪电子有限公司独家持有 未经本公司的书 面许可, 不得以任何方式或形式进行修改 分发或复制本文档的任何 部分, 否则一切后果由违者自负 版本更新记录 版本日期说明 V1.0 2014.04.03 初始发布 深圳市微雪电子有限公司 www.waveshare.net I 目录 版权声明... I 版本更新记录...

More information

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc 在 VMWare-5.5+RedHat-9 下建立 本机 QTopia-2.1.1 虚拟平台 张大海 2008-5-9 一 资源下载 1. 需要以下安装包 : tmake-1.13.tar.gz qtopia-free-source-2.1.1.tar.gz qt-embedded-2.3.10-free.tar.gz qt-x11-2.3.2.tar.gz qt-x11-free-3.3.4.tar.gz

More information

Microsoft Word - 实用案例.doc

Microsoft Word - 实用案例.doc 计 算 机 系 统 应 用 2009 年 第 12 期 嵌 入 式 Linux 下 温 湿 度 传 感 器 的 设 计 与 实 现 1 Design and Implementation of Temperature and Humidity Sensor Based on Embedded Linux 陈 博 刘 锦 高 ( 华 东 师 范 大 学 电 子 科 学 技 术 系 上 海 200241)

More information

1.01

1.01 2013 操作系统课程设计 内容简介 设计目的 设计内容 实施方法及要求 时间安排 辅导 2 设计目的 掌握 Linux 操作系统的使用方法 ; 了解 Linux 系统内核代码结构 ; 掌握实例操作系统的实现方法 3 内容简介 设计目的 设计内容 实施方法及要求 时间安排 辅导 4 设计内容 (1) 要求 : 熟悉和理解 Linux 编程环境 内容 编写一个 C 程序, 使用 Linux 下的图形库,

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0 SDChain-Matrix 节点搭建指南 目录 1 环境要求... 3 2 软件下载... 4 3 安装部署... 4 3.1 部署可执行程序目录... 4 3.2 部署配置文件目录... 4 3.3 部署数据库文件目录... 4 3.4 部署日志文件目录... 4 3.5 部署依赖库文件目录... 4 4 配置参数... 5 5 启动运行... 7 5.1 普通模式启动... 7 5.2 加载启动模式...

More information

Microsoft Word - linux命令及建议.doc

Microsoft Word - linux命令及建议.doc Linux 操 作 系 统 命 令 集 1 基 本 命 令 查 看 系 统 信 息 : uname -a 修 改 密 码 : passwd 退 出 : logout(exit) 获 取 帮 助 : man commands 2 文 件 和 目 录 命 令 显 示 当 前 工 作 目 录 : pwd 改 变 所 在 目 录 : cd cd - 切 换 到 上 一 次 使 用 的 目 录 cd 切 换

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

Linux服务器构建与运维管理

Linux服务器构建与运维管理 1 Linux 服务器构建与运维管理 第 2 章 :Linux 基本命令 阮晓龙 13938213680 / rxl@hactcm.edu.cn http://linux.xg.hactcm.edu.cn http://www.51xueweb.cn 河南中医药大学管理科学与工程学科 2018.3 2 提纲 目录与文件的操作 mkdir touch mv cp rm rmdir file tree

More information

<4D F736F F D20B5DA36D5C22020D7D6B7FBC9E8B1B8C7FDB6AF>

<4D F736F F D20B5DA36D5C22020D7D6B7FBC9E8B1B8C7FDB6AF> LINUX 设备驱动开发详解 作者 : 华清远见 第 6 章 字符设备驱动 Linux Linux 6.1 Linux cdev file_operations Linux 6.2 globalmem 6 9 6.3 6.1 globalmem seek() I/O globalmem 6.4 6.3 globalmem Linux 字符设备驱动结构 6.1.1 cdev 结构体 在 Linux 2.6

More information

ebook15-12

ebook15-12 1 2I / O 12.1 I / O V I / O s e l e c tp o l l r e a d vw r i t e v I / Om m a p 14 15 12.2 I / O 1 0. 5 F I F O F I F O i o c t l 14 I / O I / o p e n, r e a dw r i t e I / O (1) o p e n O _ N O N B L

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

嵌入式Linux块设备驱动开发解析

嵌入式Linux块设备驱动开发解析 The success's road 嵌 入 式 LINUX 网 络 驱 动 开 发 Copyright 2007-2008 Farsight. All rights reserved. 要 点 Linux 网 络 设 备 驱 动 程 序 概 述 计 算 机 网 络 概 述 skbuf 数 据 结 构 介 绍 Linux 网 络 设 备 驱 动 程 序 API 介 绍 Linux 网 络 设 备 驱

More information

ebook15-C

ebook15-C C 1 1.1 l s ( 1 ) - i i 4. 14 - d $ l s -ldi /etc/. /etc/.. - i i 3077 drwxr-sr-x 7 bin 2048 Aug 5 20:12 /etc/./ 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /etc/../ $ls -ldi /. /..... i 2 2 drwxr-xr-x 13 root

More information

C

C C 14 2017 5 31 1. 2. 3. 4. 5. 2/101 C 1. ( ) 4/101 C C ASCII ASCII ASCII 5/101 C 10000 00100111 00010000 ASCII 10000 31H 30H 30H 30H 30H 1 0 0 0 0 0 ASCII 6/101 C 7/101 C ( ) ( ) 8/101 C UNIX ANSI C 9/101

More information

Microsoft PowerPoint - Chapter7-DriverDevices.ppt

Microsoft PowerPoint - Chapter7-DriverDevices.ppt Chapter 7 Device Drivers and Software Interface Design Professor Ching-Lung Su E-mail: kevinsu@yuntech.edu.tw Http://www.eecs.yuntech.edu.tw NYUST/EL P-2/80 Outline 7.1 Introduction to Device Driver 7.2

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

嵌入式系统实验报告之一

嵌入式系统实验报告之一 南京航空航天大学 嵌入式系统综合实验报告 Qtopia 在 S3C2440 开发板上的移植 040630520 彭立勋 2009.05 一 实验目的 1. 熟悉 ARM 体系结构 ; 2. 熟悉 Qtopia 图形环境 二 实验内容 将 Qtopia 图形环境移植到 FriendlyARM QQ2440 开发板 三 预备知识 Qtopia 的体系结构 四 实验设备及工具 硬件 :QQ2440 开发板

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

C C

C C C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please

More information

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像 .... 计算机应用教研室 @ 计算机学院嵌入式系统实验室 @ 苏州研究院中国科学技术大学 Fall 2010 . Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像 . 编译 Linux 在 QEMU 模拟器上运行 qemu+linux-2.6.26.1. 准备模拟器.2.

More information

C++ 程式設計

C++ 程式設計 C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004

More information

epub 33-8

epub 33-8 8 1) 2) 3) A S C I I 4 C I / O I / 8.1 8.1.1 1. ANSI C F I L E s t d i o. h typedef struct i n t _ f d ; i n t _ c l e f t ; i n t _ m o d e ; c h a r *_ n e x t ; char *_buff; /* /* /* /* /* 1 5 4 C FILE

More information

ebook35-14

ebook35-14 14 V F S L i n u x 14.1 S u p e r I O I D E I D E C S R, C S R L i n u x L i n u x I D E / d e v / h a d m k n o d I D E I D E / d e v / h d a 2 L i n u x Linux /dev/cua0 / d e v / c u a 1 512 1024 BSD

More information

Abstract arm linux tool-chain root NET-Start! 2

Abstract arm linux tool-chain root NET-Start! 2 Lab III - Embedding Linux 1 Abstract arm linux tool-chain root NET-Start! 2 Part 1.4 Step1. tool-chain 4 Step2. PATH 4 Part 2 kernel 5 Step1. 5 Step2... 6 Step3...8 Part 3 root. 8 Step1. 8 Step2. 8 Part

More information

提纲 1 2 OS Examples for 3

提纲 1 2 OS Examples for 3 第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may

More information

DVK530/531扩展板

DVK530/531扩展板 DVK710 扩展板 驱动移植手册 2014.06.03 V1.0 版权声明 本手册所有权由深圳市微雪电子有限公司独家持有 未经本公司的书 面许可, 不得以任何方式或形式进行修改 分发或复制本文档的任何 部分, 否则一切后果由违者自负 版本更新记录 版本日期说明 V1.0 2014.06.03 初始发布 深圳市微雪电子有限公司 www.waveshare.netii I 目录版权声明... I 版本更新记录...

More information

嵌入式系统原理及应用教程 ( 第 2 版 )/ 清华大学出版社 EL-ARM-860 V1.2 一 实验目的 实验二 Boot Loader 引导程序 1. 了解 Boot Loader 的作用, 掌握 Boot Loader 的编程思想 二 实验设备 1. Pentium II 以上的 PC 机,

嵌入式系统原理及应用教程 ( 第 2 版 )/ 清华大学出版社 EL-ARM-860 V1.2 一 实验目的 实验二 Boot Loader 引导程序 1. 了解 Boot Loader 的作用, 掌握 Boot Loader 的编程思想 二 实验设备 1. Pentium II 以上的 PC 机, 一 实验目的 实验二 Boot Loader 引导程序 1. 了解 Boot Loader 的作用, 掌握 Boot Loader 的编程思想 二 实验设备 1. Pentium II 以上的 PC 机, LINUX 操作系统 三 实验内容 1. 学习 x-loader 作用和编译过程 2. 学习 uboot 作用和编译过程 3. 学习 Boot Loader 的操作 四 Bootloader 程序说明

More information

ebook15-4

ebook15-4 4 4.1 I / O I / s t a t s t a t ( ) U N I X 4.2 stat fstat lstat s t a t #include #include int stat(const char p a * t h n a m e, struct stat b * u f) ; int fstat(int f i l e

More information

ebook35-21

ebook35-21 21 Linux L i n u x 211 U N I X U N I X I / O F I F O U N I X I n t e r n e t s o c k e t () s o c k e t () send() r e c v ( read() w r i t e () send() r e c v () I n t e r n e t 212 Internet Internet S

More information

Linux 操作系统分析 Chapter 9-2 Linux 中程序的执行 陈香兰 苏州研究院中国科学技术大学 Fall 2014 November 4,

Linux 操作系统分析 Chapter 9-2 Linux 中程序的执行 陈香兰  苏州研究院中国科学技术大学 Fall 2014 November 4, Linux 操作系统分析 Chapter 9-2 Linux 中程序的执行 陈香兰 (xlanchen@ustceducn) 计算机应用教研室 @ 计算机学院嵌入式系统实验室 @ 苏州研究院中国科学技术大学 Fall 2014 November 4, 2014 陈香兰 (xlanchen@ustceducn) ( 计算机应用教研室 Linux 操作系统分析 @ 计算机学院嵌入式系统实验室 Chapter

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

第11章 可调内核参数

第11章 可调内核参数 11 11 Unix BSD 4.4 Linux sysctl Unix Linux /proc window /proc /proc/sys /proc/sys sysctl Unix root /proc/sys/vm root /proc/sys sysctl /proc/sys struct ctl_table 18274 struct ctl_tables /proc/sys struct

More information

Microsoft PowerPoint - soc_fpga_software_dev.ppt [相容模式]

Microsoft PowerPoint - soc_fpga_software_dev.ppt [相容模式] SoC FPGA Training -- software development 1 教学目的 学习基于 SoC FPGA 嵌入式软件开发流程 熟悉 Altera SoC EDS 软件开发工具 熟悉 Makefile 编写 熟悉 SoC FPGA HPS 地址映射 2 软件开发流程 1. 编写 C 语言程序文件 (.c /.h 文件 ) 2. 为软件设计创建 Makefile, 制定编译规则 3.

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

Microsoft PowerPoint - 嵌入式系统设计课件第五讲.ppt

Microsoft PowerPoint - 嵌入式系统设计课件第五讲.ppt 嵌入式软件系统 嵌入式软件系统的开发形式 嵌入式系统软件的组成 嵌入式系统开发常用协议 嵌入式系统的引导代码 嵌入式系统的内核 Linux 设备驱动程序开发 嵌入式软件系统的开发形式 基于裸机的开发无须操作系统的支持, 软件的每个代码都需要软件程序员进行开发, 一般采用汇编语言, 大多开发简单系统, 如家用电器的简单控制, 适用嵌入式微控制器 基于嵌入式操作系统的开发小型嵌入式系统应用, 不需要复杂文件系统,

More information

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony Ioncube Php Encoder 8 3 Crack 4 ->>->>->> DOWNLOAD 1 / 5 2 / 5 Press..the..General..Tools..category4Encrypt..and..protect..files..with..PHP..encoding,..encryption,..ob fuscation..and..licensing... 2016

More information

untitled

untitled 1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;

More information

1

1 SDT Uclinux SDT.alf.c 44blib.alf 44blib.c jtag ADS.alf.c make menuconfig make dep make clean make lib_only make user_only make romfs make image make uclinux ext2 cash lcd frambuffer 1 armsys-c uclinux

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

Andes Technology PPT Temp

Andes Technology PPT Temp 晶心科技線上技術研討會 AndesCore 便捷的全 C 嵌入式编程 晶心科技市場及技術服務部毛礼杰軟件經理 WWW.ANDESTECH.COM 大纲 系统初始化介绍 异常和中断说明 全 C 语法例子说明 总结 2 CPU 相关特性 1: 中断向量表 系统初始化 (1) 2: 系统寄存器 通常需要用 assembly( 汇编 / 组合 ) 语言来操作 AndesCore 全 C 嵌入式编程 C 扩展语法

More information

Microsoft Word - 36.doc

Microsoft Word - 36.doc 基于 Linux 的高速数据采集卡驱动设计 曾晓波 12 (1. 中国科学院电子学研究所北京 100080 ; 2. 中国科学院研究生院北京 100080) 摘要 : 在介绍 Linux 下设备驱动程序基础上, 结合项目实例, 详细说明了 PCI-X 数据采集卡的驱动程序编写方法, 重点分析驱动程序效率问题, 并提出针对高速数据采集卡驱动程序的优化方法 实践表明, 该方法明显地提高了驱动程序的效率,

More information

S3C6410 ARM11开发板Linux BSP构建

S3C6410 ARM11开发板Linux BSP构建 嵌入式培训专家 S3C6410 ARM11 开发板 Linux BSP 构建 主讲 : 宋宝华 www.farsight.com.cn 今天的内容 vbsp 的组成部分 vplat/mach 各组件的实现 内核节拍 中断管理 时钟 GPIO DMA IO 内存映射 v 设备与资源 platform device resource 和 plarform data uart/spi/i2c 等设备板级

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

Linux内核的移植技术剖析

Linux内核的移植技术剖析 嵌入式培训专家 Linux 内核的移植技术剖析 主讲 : 宋宝华 www.farsight.com.cn 今天的内容 vbsp 的组成部分 vplat/mach 各组件的实现 内核节拍 中断管理 时钟 GPIO DMA IO 内存映射 v 设备与资源 platform device resource 和 plarform data uart/spi/i2c 等设备板级 resource vbsp 作用

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

SEP4020 Linux2

SEP4020 Linux2 SEP4020 Linux2.6.16 SDK Develop Manual Version 3.4 南京博芯电子技术有限公司 2009 11 版权声明 本手册版权归属南京博芯电子技术有限公司所有, 并保留一切权力 没有南京博芯电子技术有限公司的许可 ( 书面形式 ), 任何单位及个人不得擅自摘录本手册部分或全部, 违者我们将追究其法律责任 TEL:025-83196327 FAX:025-83196326

More information

<4D6963726F736F667420576F7264202D20C7B6C8EBCABD6C696E7578BBF9B4A1CAB5D1E92E646F63>

<4D6963726F736F667420576F7264202D20C7B6C8EBCABD6C696E7578BBF9B4A1CAB5D1E92E646F63> 嵌 入 式 linux 基 础 实 验 1 内 核 配 置 及 编 译 1. 进 入 内 核 所 在 目 录 /opt/ruiva/xscale/linux-2.6.26 #cd /opt/ruiva/xscale/linux-2.6.26 2. 键 入 make menuconfig, 根 据 需 要 适 当 配 置 内 核 #make menuconfig 这 里 先 使 用 默 认 的 配 置,

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

How to Debug Tuxedo Server printf( Input data is: %s, inputstr); fprintf(stdout, Input data is %s, inputstr); fprintf(stderr, Input data is %s, inputstr); printf( Return data is: %s, outputstr); tpreturn(tpsuccess,

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

普通高級中學課程

普通高級中學課程 普 通 高 級 中 學 課 程 全 民 國 防 教 育 學 科 中 心 學 校 104 年 度 工 作 計 畫 主 持 人 : 呂 淑 美 校 長 指 導 單 位 教 育 部 及 教 育 部 國 民 及 學 前 教 育 署 執 行 單 位 國 立 新 竹 女 子 高 級 中 學 執 行 期 間 104 年 1 月 1 日 至 104 年 12 月 31 日 目 錄 第 一 章 前 言 V-1 壹 計

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

Microsoft Word - 扉页

Microsoft Word - 扉页 第 3 章 文件系统简介 在 UNIX 族的操作系统中, 文件系统占有十分重要的地位, 文件的概念涵盖了 UNIX 设备和操作对象的全部内容, 对设备的操作方式几乎可以与对普通文件的操作等价 本章对文件系统进行简单的介绍, 主要包括如下内容 : Linux 下文件的内涵 ; Linux 下的文件系统布局和文件系统的树形结构 ; Linux 下的普通文件和设备文件 ; Linux 下虚拟文件系统的含义

More information

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf (%d, & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf (%d %d 2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

SEP4020 Linux2

SEP4020 Linux2 SEP4020 Linux2.6.16 SDK Develop Manual Version 3.4.4 南京博芯电子技术有限公司 2009 年 12 月 版权声明 本手册版权归属南京博芯电子技术有限公司所有, 并保留一切权力 没有南京博芯电子技术有限公司的许可 ( 书面形式 ), 任何单位及个人不得擅自摘录本手册部分或全部, 违者我们将追究其法律责任 TEL:025-83196327 FAX:025-83196326

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

<4D6963726F736F667420576F7264202D204C696E7578CFB5CDB3B5F7D3C3C1D0B1ED>

<4D6963726F736F667420576F7264202D204C696E7578CFB5CDB3B5F7D3C3C1D0B1ED> Linux 系 统 调 用 列 表 雷 镇 (leicool@21cn.com) http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html ( 王 伟 注 : 本 文 是 从 作 者 的 博 文 上 拷 贝 来 的, 进 行 了 重 排 版 ) 简 介 : 本 文 列 出 了 大 部 分 常 见 的 Linux

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

More information

标题

标题 文学蓝皮书 9 网络文学 趋向主流化 酝酿新格局 摘 要 2015 年的网络文学 在中央重视 政府主导 民间先 行 资本发力等诸多因素联手推动下 呈现出借势发 展和强势进取的良好势头 网络小说创作 在虚构类 的玄幻与仙侠 写实类的历史与都市 都有好的和比 较好的力作佳构联袂而来 主流体制组建网络文学机 构 IP 热 愈演愈烈 都从不同的侧面和层面推动网 络文学进而做大做强 使之成为当代文学中最具成长

More information

字元設備字元設備 (char device) 和普通檔案系統的區別 : 普通檔案系統可以來回讀 / 寫, 而大多字元設備僅僅是資料通道, 只能順序讀 / 寫 應用程式使用標準系統調用打開 (open) 讀取(read) 寫(write) 和關閉 (close), 完全好像這個設備是一個普通檔一樣 初

字元設備字元設備 (char device) 和普通檔案系統的區別 : 普通檔案系統可以來回讀 / 寫, 而大多字元設備僅僅是資料通道, 只能順序讀 / 寫 應用程式使用標準系統調用打開 (open) 讀取(read) 寫(write) 和關閉 (close), 完全好像這個設備是一個普通檔一樣 初 第十章驅動程式的設計 為了瞭解嵌入式 Linux 系統中驅動程式的開發過程, 以及掌握如何運行和載入驅動程式, 在嵌入式 Linux 系統中嘗試添加一個驅動程式於 Linux 核心程式中 10-1.linux 設備驅動程式概述 設備驅動可以理解為作業系統的一部分, 對於一個特定的硬體設備來說, 其對應的 設備驅動程式是不同的 比如網卡, 音效卡, 鍵盤, 滑鼠以及顯卡等 對於作業系統來說, 掛 接的設備越多,

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 1 2 1 2 3 4 5 6 7 8 9 10 3 1 150 2 150 1 1 1.1 1.1.1 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.4 1.4.1 CPU 1.4.2 I/O 1.4.3 I/O 1.5 1.5.1 CISC RISC 1.5.2 1.5.3 1.6 1.6.1 1.6.2 N 1.6.3 2 2.1 2.1.1 2.1.2 2.1.3

More information

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un Linux C July 27, 2016 Contents 1 Linux IDE 1 2 GCC 3 2.1 hello.c hello.exe........................... 5 2.2............................... 9 2.2.1 -Wall................................ 9 2.2.2 -E..................................

More information

JLX

JLX PRODUCT:LCD MODULE. Model No.: JLX177-006 Product Type: 1.77 inch QVGA TFT Modoule. 产品规格书 晶联讯研发研发部 : Written By Checked By Approved By 客户名称 : 结构电子核准 地址 : 深圳市宝安区西乡宝安大道东华工业区 A3 栋 6 楼电话 :0755-29784961 Http://www.jlxlcd.cn

More information

本文由筱驀釹贡献

本文由筱驀釹贡献 本 文 由 筱 驀 釹 贡 献 ppt 文 档 可 能 在 WAP 端 浏 览 体 验 不 佳 建 议 您 优 先 选 择 TXT, 或 下 载 源 文 件 到 本 机 查 看 Linux 操 作 系 统 Linux 操 作 系 统 第 一 部 分 介 绍 与 安 装 Linux 的 由 来 : Linux 的 由 来 : 的 由 来 Linus Torvalds 1.Linux 的 版 本 1.Linux

More information

X713_CS_Book.book

X713_CS_Book.book / / /USB ) ; ; C D ; ; B B 1 >> 2 3 B 1 ( > > ) 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 GSM GPS ( ) 手机已连接到 GSM 网络 指示条越多, 接收质量越好 GPS 2 ...........................4.............................. 4 Micro SD (

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

<4D F736F F F696E74202D20C7B6C8EBCABDC7FDB6AFBFAAB7A22DD2D7CBC9BBAA2E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D20C7B6C8EBCABDC7FDB6AFBFAAB7A22DD2D7CBC9BBAA2E BBCE6C8DDC4A3CABD5D> 嵌入式开发之 linux 驱动开发入门 易老师, 深圳中心 华清远见全国免费咨询电话 :400-706-1880 深圳中心咨询电话 : 0755-25590506 Topics... 1.LINUX 驱动干什么用的? 2. 现在企业需要什么底层驱动人才? 3. 如何成为嵌入式底层人才? 4.LINUX 驱动和单片机开发有何异同 5.LINUX 设备驱动的架构分析 6.LCD 的硬件原理分析 7.LCD

More information

ebook15-10

ebook15-10 1 0 10.1 U N I X V 7 4. 3 B S D S V R 3 P O S I X. 1 100 % 10.2 S I G S I G A B RT a b o r t S I G A L R M a l a r m V 7 1 5 S V R 4 4. 3 + B S D 31 < s i g n a l. h > 0 10. 9 k i l l 0 P O S I X. 1 D

More information

第一次寫Linux Driver就上手

第一次寫Linux Driver就上手 Lab 10 Linux Drivers 實驗目的 利用 Linux 來建立 Embedded system 已經是非常常見的應用 在不同的系統應用上面經常會有不同的硬體如 LCD Key Pad 等, 必須透過不同的 I/O 操作才能夠控制 通常這些必須直接與硬體溝通的程式, 都會寫成 driver 的型態載入作業系統 透過該 driver 提供一組標準的介面存取硬體, 如此使用者的程式便不需要直接與硬體溝通,

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 177 [P179] (1) - [P181] [P182] (2) - for [P183] (3) - switch [P184] [P187] [P189] [P194] 178 [ ]; : : int var; : int var[3]; var 2293620 var[0] var[1] 2293620

More information

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2.

More information

第11章、嵌入式Linux设备驱动开发

第11章、嵌入式Linux设备驱动开发 黑色经典 系列之 嵌入式 Linux 应用程序开发详解 第 11 章嵌入式 Linux 设备驱动开发 本章目标 本书从第 6 章到第 10 章详细讲解了嵌入式 Linux 应用程序的开 发, 这些都是处于用户空间的内容 本章将进入到 Linux 的内核空间, 初步介绍嵌入式 Linux 设备驱动的开发 驱动的开发流程相对于应用 程序的开发是全新的, 与读者以前的编程习惯完全不同, 希望读者能 尽快地熟悉现在环境

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

EK-STM32F

EK-STM32F STMEVKIT-STM32F10xx8 软 件 开 发 入 门 指 南 目 录 1 EWARM 安 装... 1 1.1 第 一 步 : 在 线 注 册... 1 1.2 第 二 步 : 下 载 软 件... 2 1.3 第 三 步 : 安 装 EWARM... 3 2 基 于 STMEVKIT-STM32F10xx8 的 示 例 代 码 运 行... 6 2.1 GPIO Demo... 6 2.2

More information

Outline 制作带 grub 启动的磁盘映像 利用 qemu+gdb 来调试 linux

Outline 制作带 grub 启动的磁盘映像 利用 qemu+gdb 来调试 linux Linux 操作系统分析 陈香兰 (xlanchen@ustc.edu.cn) 计算机应用教研室 @ 计算机学院嵌入式系统实验室 @ 苏州研究院中国科学技术大学 Spring 2011 Outline 制作带 grub 启动的磁盘映像 利用 qemu+gdb 来调试 linux qemu+linux-2.6.26 1. 准备模拟器 2. 编译 Linux 内核 3. 准备根文件系统 1 准备模拟器

More information

幻灯片 1

幻灯片 1 基于凌动平台的 Linux 系统下的软硬件开发 软件学院 章亦葵 Linux 中的驱动设计是嵌入式 Linux 开发中十分重要的部分 驱动程序是应用程序与硬件之间的一个中间软件层驱动程序主要需要考虑下面三个方面 : 1. 提供尽量多的选项给用户 2. 提高驱动程序的速度和效率 3. 尽量使驱动程序简单, 使之易于维护 Linux 内核层次分割 Linux 内核驱动的两种模式 一种是直接编译到内核,

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

/3/15 1, linux. linux,,. : 1.NAT ; 2. (load balance, virtual server);; 3. ; 4. ; 5. 6.VPN; 7. ; 8. ; 9.. (,

/3/15 1, linux. linux,,. : 1.NAT ; 2. (load balance, virtual server);; 3. ; 4. ; 5. 6.VPN; 7. ; 8. ; 9.. (, Yawl(yawl@docshownet) wwwdocshownet 2000/3/15 1, linux linux,, 1NAT ; 2 (load balance,virtual server);; 3 ; 4 ; 5 6VPN; 7 ; 8 ; 9 (,, )IP, (VPN,, ) IP, (call_in_firewall(),call_fw_firewall(),call_out_firewall(),

More information

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE Project Properties IDE makefile 1. Oracle Solaris Studio 12.2 IDE 2010 9 2 8 9 10 11 13 20 26 28 30 32 33 Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1. "File" > "New

More information