- 博客(32)
- 资源 (13)
- 收藏
- 关注
原创 读取文件以行为单位逆序输出到另一文件
首先要声明的一点时,一篇文档只是提供了一种思路或解决办法,不一定是最有效或最通用的,这里仅仅是期望会对他人有些借鉴的意义。先来说明问题:从A文件读取文本内容,要求以逆序的方式写入到B文件中,逆序以行为单位。如A.txt文件的内容为:122344ff最后输出到B.txt中的内容为:ff442312整个问题说起来实在是不难,如果是C++或者Java,
2013-12-04 16:26:56 6967
原创 一道abc+cba=1333的问题
前两天被华为的鄙视了一下,因为临时出了一道abc+cba=1333的问题,当时由于什么都没有准备,结果就给他一个3个for循环的结果,其实当时也觉得这个不合适,简答分析了一下,a和c肯定不能等于0,因为这样结果肯定达不到1333,后来又对这个问题做了简单的分析:1333这个数字其实是比较特别的,什么情况下才有可能得出结尾是3的数字?4+9=13,5+8=13,6+7=13,7+6=13,8
2013-12-03 10:35:20 7468 11
原创 eclipse添加logcat显示
eclipse安装好相应的adt以及sdk后,发现在模拟器中运行测试程序时没有logcat的输出部分,只有Console等,网络查找才发现是配置的问题,没有使logcat显示出来,实际上只要正确的安装了adt以及android sdk后logcat的是没有问题的,可以重新配置显示出来。Window ……Show View……Other…会出现如下对话框:选择LogCat后,eclips
2012-10-23 15:39:04 11471 1
原创 android Button 监听的几种方式
android button控件目前主要有如下几种监听方式:一个button控件对应一个监听: Button buttontest; buttontest = (Button) findViewById(R.id.button1); buttontest.setOnClickListener(new View.OnClickListener
2012-10-23 15:20:33 57394 6
原创 cpio命令与文件系统制作
嵌入式开发过程中的文件系统制作,往往是使用已经定制好的目录及文件进行制作,下面以实际的例子进行说明:假设当前目录为rootdir,目录结构如下:root@debian:~# tree -L 2 rootdirrootdir|-- dev|-- drv| |-- drv1| `-- drv2|-- etc`-- proc4 directories,
2011-11-16 12:26:29 8190
原创 extern变量定义及使用方式实例
首先查看代码结构:root@debian:~/test# lsmain.c Makefile print.c print.hmain.c的内容如下:#include #include "print.h"int main(int argc, char** argv){ print(); value = 12;
2011-11-09 11:08:55 6407
原创 从延时函数看进程调度
首先在看一个BSP代码时看到如下一个延时的函数:void hdmi_delay_ms(__u32 t){ __u32 timeout = t*HZ/1000; set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(timeout);}从具体的代码内容以及网上的资料来看,基本可以确定如
2011-11-09 09:38:58 1094
原创 framebuffer_alloc
/** * framebuffer_alloc - creates a new frame buffer info structure * * @size: size of driver private data, can be zero * @dev: pointer to the device for this fb, this can be NULL * * Crea
2011-11-07 13:51:58 3768
原创 cdev_alloc与cdev_init区别
struct cdev *cdev_alloc(void){ struct cdev *p = kzalloc(sizeof(struct cdev), GFP_KERNEL); if (p) { INIT_LIST_HEAD(&p->list); kobject_init(&p->kobj, &ktype_cdev_dynamic); } return p;}
2011-11-04 17:10:16 10868 4
原创 MODEL伪操作与存储模型
MODEL伪操作的格式如下:.MODEL memory_model [,model options]它用来表示存储模式(memory_model),即用来说明在存储器中是如何安放各个段的。也就是说,它说明代码段在程序中如何安排,代码段的寻址是近还是远;数据段在程序中又是如何安排的,数据的寻址是进还是远。根据他们的不同组合,可以建立如下七种存储模型:Tiny 所有数据和代码都放在
2011-11-01 15:39:37 1327
原创 ext4文件系统一点体会
具体还不是很清楚ext4什么时候开始出现的(人很懒,也没有google一下)。不过在编译android的时候出现了一点比较尴尬的事情:开始虚拟机中安装的是debian5.0(2.6.26版本内核),编译的时候没有注意,结果在mkimg时出现mount不认识ext4文件系统
2011-10-19 16:14:04 1259
原创 linux下使用现有目录创建文件系统
使用genext2fs工具可以实现文件系统的制作,而是用tune2fs工具可以实现文件系统的改变。作为测试,我们仅仅创建一个非常简单的目录,然后再该目录下建立几个空文件。mkdir dirtouch dir/{file1,file2,file3}然后使用genext2f
2011-10-14 14:33:00 2686
原创 反编译实例2:补充4
接下来尝试do while语句是否能够实现相同功能且汇编一致:#include int main(int argc, char** argv) { int r2; int r5 = 300; int r6 = 20; int r4 = 0;
2011-10-11 17:03:56 689
原创 反编译实例2:补充3
前面反编译分别使用goto,for语句实现了语句跳转和循环,接下来分析使用while do语句是否可以:#include int main(int argc, char** argv) { int r2; int r5 = 300;
2011-10-11 16:55:19 479
原创 反编译实例2:补充2
前面反编译的时候我们使用的是goto语句实现的,并简单说明的变量的定义与否。但是这种跳转是否可以使用for语句来实现呢?代码实现如下:#include int main(int argc, char** argv) { int r2;
2011-10-11 15:52:03 682
原创 简单samba安装与配置
此配置是基于debian系统的,估计可以直接在ubuntu上进行此方法。首先新安装的debian系统是没有samba服务的,需要我们手动安装,不过在debian系统下已经变得非常简单:apt-get install samba安装好后就可以进行相关配置了,比如在我的机子上
2011-10-11 14:57:20 499
原创 反编译实例2补充1
首先,从程序开始就定义了一些变量r2,r6,r5,r4等,但是r6实际值为20,r5值为300。我们可能会考虑,如果不进行变量的定义而是直接使用数值,汇编是不是也是一样的?现在我们简单的修改一下程序的代码如下:#include int main(int argc,
2011-10-11 13:54:12 787
原创 反编译实例2:温度转换
后续我们会首先显示*.o的汇编,然后使用反编译后的C语言再比较最后的汇编结果。通过IDA打开的汇编语言如下图:接下来我们通过汇编来进行一步步的分析:1、我们不能通过开始给R6,R5,R4的赋值操作确定其具体的含义,但是大致上可以判定为变量的初始化或是数据常量;
2011-10-09 23:24:46 1311
原创 shell if 的一点体会
在跟踪一个工程的编译过程时,为了方便实时变量的打印和过程的控制,想使用read读取输入的一个字符,然后判断字符的值,再决定是否继续执行,代码如下:#!/bin/bashecho -e "\e[1;36m segement 1 \e[0m"read chif [ $ch
2011-10-08 18:07:44 689
原创 反编译实例1补充
实例1中对于寄存器R0的使用没有特别的强调,但是考虑到arm汇编中R0的重要性,这里再通过一个hello world修改后的实例来进一步说明:#include int main(int argc, char** argv){ printf("hello ");
2011-10-05 22:35:56 1228
原创 反编译实例1:helloworld
第一阶段:从源代码到可执行程序第一个helloworld程序:#include int main(int argc, char** argv){printf("hello world\n");return 0;}编译接生成可执行程序(arm
2011-10-03 23:32:36 4552
原创 反编译学习
最近开始学习基于arm反编译,而至于学习反汇编的原因,或许是头脑发热所做的决定吧……由于不同平台上的编译环境有较大的不同,因而生成的中间文件以及可执行程序的文件格式都有所不同,如同一机器上,linux系统gcc编译器生成的中间文件为.o文件,而window系统vc工具提供的编
2011-10-03 20:44:25 10914
原创 thinkpad e40 4sc安装windows7的一点感受
新买了一台Thinkpad E40 4SC,可惜预装的是linux操作系统(ubuntu10.4),虽然以前在实验室的时候是一直使用ubuntu的,但是那会在实验室做的工作对系统没有特别的要求,相对来说反而是linux系统要好些,只到写毕业论文的时候才换回windows xp系统
2011-09-22 10:17:06 1840
转载 source insight中文显示和处理
浏览网页的时候突然看到一篇介绍关于source insight中文显示修正的方法,感觉非常好,也比较全面,于是在自己的source insight中又重新设置了一下。1、首先设置中文的显示,使中文能像英文或中文在vc中的显示一样比较紧凑,便于浏览,不过在进行实际的设置前说先要
2011-09-15 15:39:39 1916
原创 cat使用(EOF的一点误区)
在linux shell脚本中我们经常见到类似于cat 首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。接下来,简单描述一下几种常见的使用方式及其作用:1、cat2、cat>filename,创建文
2011-09-13 15:45:37 2590
原创 switch语句的一点收获
记得看一段windows上的代码时遇到过这样的情况:在switch语句中得所有case之前加入了一个if语句的判断,当时很奇怪为什么在任何条件下都没有执行,后来才明白是自己理解错了switch的语法。switch语句的语法如下: switch(expression)
2011-09-12 13:21:11 790
原创 转义字符\b和\r的一点说明
编程时我们经常使用的转义字符大多是类似%d,%s,%n等,%r和%b的使用较少。其中%n的作用是回车换行,顾名思义就是从新的一行的起始位置开始。教材上转义字符\r的说明比较明显,就是回车,这里要注意的是回车后并没有换行,而且如果要继续输出有可能会覆盖掉原有的已经输出的字符
2011-09-11 14:54:53 12470
原创 mount 挂载第二块硬盘,普通用户可以读写
vmware虚拟机中安装的debian5.0系统使用过程中发现硬盘空间不足,因此创建了第二块scsi硬盘,创建过程由于比较简单就不贴图耽误大家时间了。接下来格式化硬盘分区为ext2文件系统(创建硬盘了当然要格式化,很多人都是用fdisk,不过我个人是比较倾向于cfdisk,因
2011-09-09 18:00:47 8588
原创 VC6.0如何生成汇编文件并显示编译选项
使用了比较久VC6.0,但是从来没有关注过VC的详细编译过程,刚好同事这两天做反编译工作,所以就查了一下VC的编译工具cl的编译设置。下面简单的说两个我自己比较关注的问题:1、让VC在编译过程显示详细的参数(去掉/nologo):那么,编译过成的输出如下:--
2011-09-08 15:35:09 4663
原创 kscope的使用环境
工作的大多时候总是在虚拟机中的linux上工作,所以linux上的好多东西都不太熟悉了。刚好自己的一台旧笔记本的xp崩掉了,所以想换成linux系统,考虑到目前ubuntu的版本实在太高,本本的硬件是达不到要求的,因而转而考虑安装一个简单的debian系统。刚开始是安装的
2011-08-16 16:47:02 4254
android视频聊天软件,可解压
2012-10-10
install_flash_player_10_linux.deb
2011-08-14
1394Open Host Controller Interface Specification
2011-06-20
I2C协议标准中文版
2009-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人