当前位置:  编程技术>移动开发
本页文章导读:
    ▪debugfs实例 可以当做模板使用        debugfs范例 可以当做模板使用#include <linux/debugfs.h> #include <linux/delay.h> #include <linux/errno.h> #include <linux/fs.h> #include <linux/kernel.h> #include <linux/list.h> #include <linux/module.h&.........
    ▪ Algorithm-常见排序        Algorithm--常见排序             ......
    ▪ UML顶用例图的extend和include       UML中用例图的extend和include     UML用例图包含六个元素,分别是:角色(Actor)、用例UseCase)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。     角色(Actor.........

[1]debugfs实例 可以当做模板使用
    来源: 互联网  发布时间: 2014-02-18
debugfs范例 可以当做模板使用

#include <linux/debugfs.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/string.h>
#include <linux/types.h>
#include <linux/uaccess.h>
#include <linux/wait.h>

#include <mach/debug_mm.h>
#include <mach/msm_smd.h>


#define MAX_LEN 64
#ifdef CONFIG_DEBUG_FS
static struct dentry *test_dentry;
#endif
static char l_buf[MAX_LEN];
static unsigned int test_enable;

static ssize_t test_debug_open(struct inode *inode, struct file *file)
{
 file->private_data = inode->i_private;
 printk("test debugfs opened\n");
 return 0;
}

static ssize_t test_debug_write(struct file *file, const char __user *buf,
    size_t count, loff_t *ppos)
{
 int len;

 if (count < 0)
  return 0;
 len = count > (MAX_LEN - 1) ? (MAX_LEN - 1) : count;
 if (copy_from_user(l_buf, buf, len)) {
  printk("Unable to copy data from user space\n");
  return -EFAULT;
 }
 l_buf[len] = 0;
 if (l_buf[len - 1] == '\n') {
  l_buf[len - 1] = 0;
  len--;
 }
 if (!strncmp(l_buf, "boom", MAX_LEN)) {
  printk("boom called -------------\n");
 } else if (!strncmp(l_buf, "enable", MAX_LEN)) {
  test_enable = 1;
  printk("test enabled ------------- : %d\n", test_enable);
 } else if (!strncmp(l_buf, "disable", MAX_LEN)) {
  test_enable = 0;
  printk("test disabled ---------------: %d\n", test_enable);
 } else
  printk("Unknown Command\n");

 return count;
}

static const struct file_operations test_debug_fops = {
 .write = test_debug_write,
 .open = test_debug_open,
};

static int __init test_debug_init(void)
{
#ifdef CONFIG_DEBUG_FS
 test_dentry = debugfs_create_file("test_debug", S_IFREG | S_IRUGO,
    NULL, (void *) NULL, &test_debug_fops);
#endif /* CONFIG_DEBUG_FS */
 return 0;
}
device_initcall(test_debug_init);

build;

adb shell
mount -t debugfs none /mnt 
或者:
#mkdir /data/debug
#mount -t debugfs debugfs /data/debug
#cd /data/debug

echo boom > /mnt/test_debug
dmesg:
<4>[  881.573233] test debugfs opened
<4>[  881.576895] boom called -------------

echo disable > /mnt/test_debug
dmesg:
<4>[ 1224.983946] test debugfs opened
<4>[ 1224.986296] test disabled ---------------: 0

echo enable > /mnt/test_debug
dmesg:
<4>[  926.626735] test debugfs opened
<4>[  926.632046] test enabled ------------- : 1

 

 

 


    
[2] Algorithm-常见排序
    来源: 互联网  发布时间: 2014-02-18
Algorithm--常见排序

 

 

 

 

 

 


    
[3] UML顶用例图的extend和include
    来源: 互联网  发布时间: 2014-02-18
UML中用例图的extend和include

    UML用例图包含六个元素,分别是:角色(Actor)、用例UseCase)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。

    角色(Actor)是与系统中的用例交互的一些实体,在实际情况中,角色可以是人,也可以是其他系统或者硬件设备。

    用例(UseCase)指的是系统的功能,它是系统某个功能的所有执行动作的集合。

    关联(Assocation)是角色与用例的连接,表达此角色可以初始化此用例。

    泛化(generalization)即继承关系。

    包含关系(Include):是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共部分以便基用例复用.当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行。include关系在用例图中使用带箭头的虚线表示(在线上标注<<include>>),箭头从基用例指向子用例。

例如:

注册卡和删除卡之前都必须检验卡是否存在,注册卡和删除卡着两个用例并不完整,必须和查询卡是否存在这个子用例一起才能完成它的功能。

   扩展关系(Extend):extend关系是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。extend的基用例中将存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。 extend关系在用例图中使用带箭头的虚线表示(在线上标注<<extend>>),箭头从子用例指向基用例。

例如:

查询学生信息可以独立完成,不需要子用例的参与。只有点击导出为excel按钮或打印按钮时才会执行相应的动作。

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
docker中文入门学习手册 iis7站长之家
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3