- 博客(48)
- 收藏
- 关注
原创 Swift vs Objective-c (3)- 范型
支持任意类型的范型交互任意2个func swapTwoValues<T>(inout a: T, inout _ b: T) { let temporaryA = a a = b b = temporaryA}可以对类型加上约束:func someFunction<T: SomeClass, U: SomeProtocol>(someT: T, someU: U) {
2016-03-13 11:44:43 251
原创 Swift vs Objective-c (2)- Enumerations, lazy, closure, protocol
枚举(Enumerations)Swift的枚举比OC的多了很多内容, OC的枚举就2点:普通枚举,不带类型(和c语言一样)带类型枚举 (因为最开始OC出来的时候, c和C++语言还不支持带类型枚举,所以oc打了个补丁来支持这种特性)普通枚举, 有好几种写法,详细见(http://blog.163.com/redhumor@126/blog/static/1955478420114333815
2016-03-11 16:22:11 289
原创 Swift vs Objective-c (1)- Extensions, 函数,override
写在前面用Swift来做项目也有一段时间了,与Objective-c 相比,直观的感觉是用Swift写代码更快,更流畅。但是不包括写要和c连接的代码,如果要写和c相关的,还是用OC比较好,所以现在的代码基本上是用OC来写一层c的转换层。 下面是Swift和OC的知识点对比,算是对这一段时间用到的知识的梳理。Swift Extensions vs OC categoriesSwift 中的扩展可以:
2016-03-09 11:29:50 453
原创 notifier chain分析
<br />notifier chain有4种类型的实现:atomic,blocking,raw,rcu。但是<br />实际上的实体是3个函数:extern int notifier_chain_register(struct notifier_block **list, struct notifier_block *n);extern int notifier_chain_unregister(struct notifier_block **nl, struct notifi
2011-01-07 09:43:00 1355
原创 code depository : procfs
#ifdef CONFIG_PROC_FS<br />214 static void *xxx_clk_start(struct seq_file *seq, loff_t *pos)<br />215 {<br />216 if (*pos == 0) {<br />217 seq_printf(seq, "NAME/t/tPARENT/t/tRATE(HZ)/tENABLE/tUSAGE/n");<br />218 }<br />
2010-06-22 10:35:00 365
原创 soc系统了解:interrupt controller
现在流行的架构是 AMBA system,是 APB和AHB 两个bus的组合,APB(advance peripheral bus), AHB(advance high speed bus).高速的设备会挂到AHB上,比如: USB,memory,ethernet,dmac... 而低速的设备会挂到APB上,比如:uart,rtc,gpio,timer。。。AHB和APB都可以有中断控制
2010-03-17 14:32:00 1239
原创 Spin lock 详解
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty
2009-12-04 11:23:00 1160
原创 gcc编译时的搜索路径顺序-头文件和lib文件
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class
2009-12-03 09:36:00 1494
原创 code depository: 2 week shutdown
#include #include #include #include #define RECORD_DEBUG#define PATH "/root/timer_record"#ifdef RECORD_DEBUG#define TIME 60 #define DEADLINE (2) #else#define TIME 600 /* 10 min
2009-12-01 13:35:00 386
原创 更改vermagic howto
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object cl
2009-11-13 14:34:00 1829
原创 chroot howto
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty
2009-08-21 16:49:00 296
原创 sfdisk
sudo sfdisk -f $device -uM >& /dev/null $rootfs_par_offset,$rootfs_size,83$at6600bin_par_offset,$at6600bin_size,83$at6600data_par_offset,$at6600data_size,83$userdata_par_offset,,83EOF
2009-07-21 15:25:00 1045
原创 lsmod
through analyse /proc/modulesnfs 170109 0 - Live 0x129b0000lockd 51593 1 nfs, Live 0x128b0000nls_utf8 1729 0 - Live 0x12830000vfat 12097 0 -
2009-07-20 17:11:00 904
转载 zImage内核镜像解压过程详解
在华清远见教学过程中,发现很多学员对内核镜像解压过程比较感兴趣,但网上相关的文章往往不能把关键问题讲清楚,所以写了这篇文章。 本文以linux-2.6.14内核在S3C2410平台上运行为例,讲解内核的解压过程。 内核编译完成后会生成zImage内核镜像文件。关于bootloader加载zImage到内核,并且跳转到zImage开始地址运行zImage的过
2009-04-14 10:05:00 571
原创 用/proc/stat计算cpu的占用率
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font
2009-04-09 18:36:00 5881
原创 how to caculate gettimeofday
在mobile linux中的gettimeofday,按照user layer的定义,是micro second(us)的精度。 但是真的精确么?gettimeofday --> sys_gettimeofday -->do_gettimeofdayvoid do_gettimeofday(struct timeval *tv){ unsigned long flags; unsig
2009-03-24 15:30:00 1166
原创 arm下的udelay
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font
2009-03-19 17:34:00 1176
原创 linux中pid gid tgid tid的区别和联系
getpid : 取得process id,对于thread,就是取得线程对应进程的id;对应的system call: asmlinkage long sys_getpid(void)1614 {1615 return current->tgid;1616 }tgid = thread group id ////////////////////////////
2009-02-05 13:07:00 27800
原创 cache memory study--mmap copy scatter-list 比较
生命唯一的乐趣就是学习。IC的arm核是 ARM1176JZ-S ,用armV6的指令集,不过可以先看arm7的,对应的linux kernel中的cache相关代码:/linuxOS/arch/arm/mmproc-v6.c cache-v6## Processor Type#CONFIG_CPU_32=yCONFIG_CPU_V6=yCONFIG_CPU_32v6K=yCONFIG_CPU_3
2009-01-08 11:08:00 1009
转载 source insight 使用技巧
1 开胃菜-初级应用1.1 选择美丽的界面享受工作虽然不能以貌取人,但似乎从来没有人责备以貌取软件的。SI的华丽界面,绝对符合现代花花世界的人的审美趣味。在SI中,我们可以轻松地把各种类型关键字、变量、标志符、函数、宏、注释等定义为不同
2009-01-06 14:50:00 809
原创 关于arm汇编用gcc编译的疑问
汇编器与指令集,不同的CPU对应不同的指令集;不同的汇编器对应不同的语法和伪指令集。每种汇编器都可以有自己的伪指令集和自己的语法,但实际上,由于事实标准的原因,(所有的CPU厂商会提供指令使用手册,手册中的指令书写样式,实际上就是事实汇编语法,何况CPU厂商肯定会提供自己的汇编器的),现代大多数的汇编器都会在主流的汇编语法Intel型和AT&T型这两类语法中选择一种作为自己的语法(
2009-01-05 18:18:00 1106
原创 atag和command line
bootloader用atag向kernel传递信息:atag的info可以在 Normal 0 7.8 磅 0 2 false false false MicrosoftInternet
2008-12-12 11:37:00 675
原创 code template : parse_command_line -- user space
static int parse_command_line( int argc, char *argv[] ){ int n; char *error; for (n = 1; n const char *a = argv[n]; if (*a != -) { return -1;
2008-11-12 15:09:00 379
转载 Linux内核驱动程序初始化顺序的调整
from http://soft.zdnet.com.cn/software_zone/2007/1023/574250.shtml今天在做一个驱动的时候要用到另一个驱动(I2C)提供的API,在内核初始化时碰到了一个依赖问题。 我的驱动在I2C初始化之前就运行起来了,而这时I2C提供的API还处于不可用状态。查了很多资料,网上有人说所有使用module_init这个宏的驱动程序的起动顺序都是
2008-10-31 10:14:00 494
原创 code depository -- register.h template
//write reigster name at the begin of column,and write the bit macro of this register at the second of column#define REG_ME_STATUS 0x00000000 #define REG_ME_STATUS_ID 0x00 #defin
2008-10-15 11:48:00 279
原创 linux driver template
/* * sound/arm/omap/omap-alsa-twl4030.c * * Codec driver for TWL4030 for OMAP processors * * Copyright (C) 2007 Texas Instruments, Inc. * * This package is free software; you can redistribute it and/o
2008-10-14 18:55:00 385
原创 code depository :get from file then save to file
static void get_from_file(int file_pos){ char *fname,*fname_save; struct file * f = NULL,*f_save = NULL; mm_segment_t orig_fs,orig_fs_save; int length_read,length_write; //get data
2008-08-04 09:38:00 302
原创 code depository - save_2_file
static void save_2_file(char* buf, int size){ char *fname; struct file * f = NULL; mm_segment_t orig_fs; int length_write; //get data from file fname = "/tmp/out.pcm"; f =
2008-08-04 09:34:00 276
原创 ramdisk的制作过程(转)
http://blog.chinaunix.net/u/21378/showart_336241.html在一个已建好的文件系统上进行修改设已建立好的文件系统压缩文件为ramdisk.gz1. 解压#cd ramdisk.gz所在目录#gunzip ramdisk.gz在解压后,得到文件系统镜象文件ramdisk, 覆盖了原来的压缩文件 2. 镜
2008-07-24 16:17:00 301
原创 linux-test-tools: Bonnie
Bonnie是一款极小的测试系统IO性能的工具,源代码公开.作者主页:http://www.textuality.com/bonnie/ 你也可以点击这里下载其使用手册在:http://www.textuality.com/bonnie/advice.html测试IO速度:1.T3阵列速度测试(raid5) # df -kFilesystem kbyt
2008-04-22 14:02:00 778
转载 linux 之top命令详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:01:06:48 当前时间up 1:22 系统运行时间,格式为时:分1 user 当前登录用户数load average: 0.06, 0.60, 0.48 系统负载
2008-04-09 20:26:00 286
原创 the problem of umount
卸载 USB 存储设备时提示“ Device is busy ”首先,执行sync命令,以保证文件系统数据完整性。然后,用命令fuser -m /dev/sda1(sda1是USB存储设备的设备文件),查看哪些进程正在使用要卸载的这个USB设备。使用killall PID杀死这些进程,再卸载USB设备就不会再提示“ Device is busy”怎么,上面的看不懂。你只要执行这个命令。sync &
2008-04-09 09:54:00 272
原创 svn 使用
//check outsvn co http://10.1.16.136/svn/oss --username=cindy //cd Dir of check out//updatesvn up//commitsvn ci -m "add something " --username=cindy
2008-04-02 16:36:00 225
原创 QT的信号(signal)与槽(slots)机制
信号和槽机制是QT的核心机制,应用于对象之间的通信.信号和槽是QT自行定义的一种通信机制,,借助一个称为moc(Meta Object Compiler)的QT工具,该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。 窗口小部件(widget)都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在QT中信号和槽取代了这些凌乱的函数
2008-01-29 15:11:00 1009
原创 vnc使用
1.要查看所有vncserver打开的端口ps ax | grep vnc 2) 密码修改: 第一次启动vncserver会提示输入密码,以后要修改的话,运行: #vncpassword 3) 停止vnc server: #vncserver -kill :1 #vncserver -kill :2 注意到vncserver只能由
2008-01-29 14:51:00 416
原创 slickedit 使用
上个月有个xxx的人打电话到公司,说我们用的source insight需要付费。结果IT部门就像惊弓之鸟一样禁止我们使用source insight,靠。一天到晚这么忙,来要来这种破事。可怜呀,我用了这么多年的source insight。换成slickedit还不是一样是盗版。无聊。
2008-01-22 10:44:00 471
转载 在linux中打印debug message
echo 8 > /proc/sys/kernel/printk#cat /proc/sys/kernel/printk8 4 1 7上面显示的4个数据分别对应控制台日志级别(console_loglevel)、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别。当日志级别小于console_loglevel时,消息才能显示出来。printk的日志级别定义如下(在li
2008-01-07 15:10:00 1604
转载 Disk Images Under Linux (建造一个虚拟磁盘)
Linux uses loopback devices for images.Floppy Disk ImagesFirst, lets create an empty image.dd if=/dev/zero of=floppy.img bs=512 count=2880Now, lets set it up for mounting.losetup /dev/loop
2007-12-19 16:41:00 1208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人