- 博客(49)
- 收藏
- 关注
转载 timer_list
Linux内核中提供了timer使用的API,做一个简单的记要。1. 包含的头文件:linux/timer.h2. 数据类型:struct timer_list;包含的主要成员:a. data:传递到超时处理函数的参数,主要在多个定时器同时使用时,区别是哪个timer超时。b. expires:定时器超时的时间,以linux的jiffies来衡量。c. void (*fu
2016-01-15 17:14:56
976
原创 VMware的虚拟机NAT模式和主机ping时通时不通,网络配置都没错就是不正常
检查主机的服务项中,VMware NAT service和VMware DHCP service是否都在已启动状态
2015-12-30 08:57:54
2972
1
原创 virtualBox的虚拟机镜像在vmware里面无法联网,ifconfig 没有eth0
virtualBox的虚拟机镜像在vmware里面无法联网,ifconfig 没有eth0 ,ifconfig -a 也没有eth0lspci | grep Ethernet 02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10) 在.v
2015-12-29 16:12:54
1007
原创 VirtualBox的虚拟机镜像在Vmware里无法安装
正常的步骤新建vmware虚拟机,默认的硬盘接口是scsi的,这里把scsi接口的硬盘移除,新建sata接口的硬盘并选择.vmdk为磁盘文件。
2015-12-29 15:59:52
710
转载 dmesg命令
‘dmesg’命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构、cpu、挂载的硬件,RAM等多个运行级别的大量的系统信 息。当计算机启动时,系统内核(操作系统的核心部分)将会被加载到内存中。在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备。dmesg 命令的使用范例‘dmesg’命令设备故障的诊断是非常重要的。在‘dmesg’
2015-12-24 14:47:51
2352
原创 gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’
查看顶级的Makefile可以把gcc拷贝到对应的目录或者更改目录为你的Gcc我直接拷贝了之前的Gcc
2015-12-22 09:57:01
26705
2
原创 解决Win10-PL2303驱动安装自动更新问题
恼人的Win10驱动自动更新,让开发板的PL2303串口起不来,安装一个exe文件后,再次拔插又会自动更新,禁用更新又提示是不失败。解决办法:右键Prolific USB-to-Serial ——》 更新驱动文件——》从计算机的设备驱动程序列表选取——》选取之前版本的驱动 芯片驱动不起来,
2015-12-18 16:12:30
4071
转载 AlarmManager研究
AlarmManager研究侯 亮 1.概述 在Android系统中,闹钟和唤醒功能都是由Alarm Manager Service控制并管理的。我们所熟悉的RTC闹钟以及定时器都和它有莫大的关系。为了便于称呼,我常常也把这个service简称为ALMS。 另外,ALMS还提供了一个AlarmManager辅助类。在实际的代码
2015-12-02 00:27:59
398
转载 AlarmManager研究
AlarmManager研究侯 亮 1.概述 在Android系统中,闹钟和唤醒功能都是由Alarm Manager Service控制并管理的。我们所熟悉的RTC闹钟以及定时器都和它有莫大的关系。为了便于称呼,我常常也把这个service简称为ALMS。 另外,ALMS还提供了一个AlarmManager辅助类。在实际的代码
2015-12-01 22:57:08
281
转载 c mysql
Linux下想要测试mysql和memcached的性能,因为是服务器只能通过终端连接,所以考虑用C语言写测试代码。于是研究了把C怎么连接MySQL以及增删改查的代码。安装mysql-client或者编译源码安装mysql后,会有支持C语言写客户端的头文件和库文件,但是目录可能不一样,mysql源码安装见 http://asyty.iteye.com/blog/1442503从网上找了类似
2015-11-23 14:45:59
433
转载 C mysql
软件开发中我们经常要访问数据库,存取数据,之前已经有网友提出让鸡啄米讲讲数据库编程的知识,本文就详细讲解如何使用Mysql的C语言API进行数据库编程。 API,全称Application Programming Interfaces,即应用程序编程接口,我们可以调用这些接口,执行API函数提供的功能。 Mysql C语言API就是用C语言编写的Mysql编
2015-11-23 09:57:15
443
原创 Git教程
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
2015-10-24 16:45:10
296
原创 echo 1 > /sys/class/gpio/gpio118/value
参考:http://processors.wiki.ti.com/index.php/GPIO_Driver_Guide 目前还没有涉及到代码(后续会有新的博客更新),仅关注到用户空间对GPIO的控制。 1.执行下面的命令,可以显示目前驱动已经申请到的IO状态 $ mount -t debugfs debugfs /sys/kernel/debug $ cat /sys
2015-10-24 16:35:05
7422
原创 【小技巧】Win10主机和Ubuntu虚拟机/服务器的文件传输
在Kernel目录下执行./f1就可以实现文件的传输,之前一直采用文件夹界面虚拟机拖拽,或者FilZilla, 或者WinScapi这些都只需要图形化界面拖拽,后来,好奇查了下,linux shell 界面的ftp ile Transfer Protocol (FTP) is a network protocol used to copy a fil
2015-09-17 14:37:46
2931
转载 Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)
在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的。写那篇文章的目的,是想彻底的了解从硬件到驱动,再到应用的运作流程。完成了之后,文章一直仍在草稿箱里面没发表;今天看到,决定整理一下,重新发表。目的是想和大家分享自己对Android系统的一点认识:以马达为代表,来考究“Android是如何一步步
2015-09-17 09:53:11
1031
转载 应用层 ---> framwork层JNI ---> 驱动c
======================== 驱动: 内核:android-kernel 2.6.36 (必须对应你的板子上内核,不然会出现insmod错误) 目的:通过android应用层用户空间访问内核空间驱动程序。 实验:Button控件,点亮和熄灭LED。 注明:android应用层访问驱动,一般有2种方法来访问到硬件驱动程序。 这里讲解个人看法,各位别介意。
2015-09-16 17:07:29
634
原创 VIM 打开文件和切换窗口
有时候同时vim两个文件同时编辑比较快今天查了一下,我们可以在shell 终端同时 vim file1 file2 也可以在当前vim下,执行 :e file2 这时,可以发现下面有了编号1 2 3 的文件可以通过三种方法来切换编辑的文件1、Ctrl + ^ 2、:b 1(2、3)3、:n(N)
2015-09-15 15:17:20
538
转载 Android Jni/Linux APP层和kernel层延时
应用层: #include 1、unsigned int sleep(unsigned int seconds); 秒级 2、int usleep(useconds_t usec); 微秒级:1/10^-6 #define _POSIX_C_SOURCE 199309 #include 3、int nanos
2015-09-15 09:17:08
2603
转载 Android硬件抽象层(HAL)概要介绍和学习计划
Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,
2015-09-14 18:42:48
331
转载 当你在内核源码路径里敲下make 时会发生什么。
https://github.com/0xAX/linux-insides/blob/master/Misc/how_kernel_compiled.md 本文会告诉你当你在内核源码路径里敲下make 时会发生什么。当我刚刚开始学习内核代码时,Makefile 是我打开的第一个文件,这个文件看起来真令人害怕 :)。那时候这个 Makefile 还只包含了1591 行
2015-09-14 17:35:22
1728
原创 Kernel Kconfig:warning: leading whitespace ignored
make menuconfig时候警告警告的Kconfig修改好的Kconfig
2015-09-14 11:03:23
777
原创 烧录Kernel.img PopMetal新板蓝牙功能不正常
repo sync下来的代码默认是支持PopMetal旧板子的,新板旧板的区别是wifi&bt 芯片(在GPS和WIFI天线之间的芯片)分别采用了AP6335 、AP6476 ,所以必须在kernel目录下的menuconfig配置成AP6476就可以了。
2015-09-09 15:49:37
493
原创 使用adb工具截图和传送图片
adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到SDCard)adb pull /sdcard/screenshot.png d:/screenshot.png(保存到电脑)
2015-09-09 14:43:00
6704
原创 修改PopMetal蓝牙设置(驱动,下拉状态栏,设置菜单)
一个客户应用到开发板wifi功能,但是不想用蓝牙功能,要关掉蓝牙的功能,第一个反应是make menuconfig 中把蓝牙关掉。编译烧录,蓝牙功能并不影响。想起popmetal旧板子和新板子的区别在于Wifi&BT的芯片,而且之前的AP6335的wifi驱动代码是和AP6476兼容的,所以考虑修改回6335应该也可以使蓝牙功能异常。修改dts中队蓝牙子节点的status=disabl
2015-09-09 14:33:52
845
原创 export CROSS_COMPILE=arm-linux-gnueabi- 之后,无法编译kernel
打算编译另一个kernel,一不小心export CROSS_COMPILE=arm-linux-gnueabi- 结果回到popmetal编译时候,提示arm-linux-gnueabi- gcc no such file 好吧,arm-linux-gnueabi- gcc -v 试试,提示安装 安装之后,再次执行make i.img -j4之后报错看来原来
2015-09-08 16:41:29
8695
转载 arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]arch - 体系架构,如ARM,MIPSvendor - 工具链提供商os - 目标操作系统eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface)根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,
2015-09-08 15:18:38
489
原创 *** Can't find default configuration "arch/x86/configs/xxx"!
*** Can't find default configuration "arch/x86/configs/xxx"!想了想明显是arm架构的,cd到arm结构下发现有xxx,可以修改MakefileARCH ?= $(SUBARCH)CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)也可以直接执行export ARCH
2015-09-08 10:04:25
5321
原创 修改RK3288-PopMetal的printk的波特率
客户需要修改Debug Port的波特率,查看了代码试着折腾了下。在这里记录。被修改文件的路径在上面这是uboot层的调试口的波特率。这里显然限制了波特率的范围,可能是考虑到串口时钟和分频比取整之后的误差。尝试调到115200以上,显示乱码。没进一步深究,以后要用到再继续往下跟代码。只修改了以上文件,Debug Port打印出的内容如下。说明调试串口在kernel层,重新初始化了一
2015-09-07 14:20:52
2151
转载 Vim命令合集(貌似有的有错误,Mark在这里,用到的时候来找)
命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 file3 ...在vim窗口中打开一个新
2015-08-31 10:00:01
559
原创 F6快捷键解决vim中的^M
竟然还是个历史原因 计算机的史前史,那时的打字机使用两个字符来开始一个新行。首先是一个字符命令使打印头移回开始位置(回车,),然后另一个字符命令控制向前进纸一行(进纸,).在计算机诞生之初,存储设备十分昂贵。于是有人就提出没有必要用两个字符来表示一行的结束。UNIX一族决定只用进纸一个字符<LineFeed>来表示行尾。来自苹果阵营的人则把回车作为换行的标准。MS-DOS(和微
2015-08-31 09:58:25
1040
原创 Ubuntu14.04 vim+Ctags+Taglist
原来这周周末是要Coding的,卡在service - > apk的调用,先先通过Jni直接调用实现下。但是,一个DC电源拿给队友去比赛了,也没法测试。索性来玩下vim好了。先看下效果咯http://www.cnblogs.com/xiaoya901109/archive/2012/04/13/2445995.htmlhttp://www.cnblogs.com/sof
2015-08-31 09:36:16
2465
转载 Android中JNI的使用方法
首先看一下Android平台的框架图:(网上盗用) 可以看到Android上层的Application和ApplicationFramework都是使用Java编写,底层包括系统和使用众多的LIiraries都是C/C++编写的。 所以上层Java要调用底层的C/C++函数库必须通过Java的JNI来实现。下面将学习Android是如
2015-08-28 16:05:33
320
原创 Android系统镜像Syetem.IMG的解包和打包 解决(失败:设备上没有空间)
在现有android系统时,用adb工具把程序放入系统中cmd adb push xxx.xml etc/当我们要制作系统镜像时,可以使用mkdir system sudo mount -o loop system.img system cp -rf xxx.xml system/etcsudo umount system执行cp时候,提
2015-08-27 23:34:43
3894
转载 Android framework系统默认设置修改
Launcher 总结: 1、launcher的布局太居中,要想两边拉伸 apps_customize_pageLayoutPaddingLeft">40dp apps_customize_pageLayoutPaddingRight">40dpapps tab栏的宽度(Launcher2 icon 数目、大小)\packages\a
2015-08-26 17:18:48
1914
转载 Android.mk简介及编译apk
文章参照:http://blog.sina.com.cn/s/blog_67d8d7060100q8un.html Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译。因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的。因此,您应尽量少声明变量,不要认为某些变量在解析过程中不会被定
2015-08-21 13:59:54
3058
转载 Android.mk
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。 一、Android.mk文件的用途 一个android子项目中会存在一个或多个Android.mk文件 1、单一的Android.mk文件 直接参考NDK
2015-08-21 13:57:52
309
转载 int main(int argc,char *argv[])
main()与main(int argc,char *argv[]) 有些.exe程序可以带参数运行,比如:ping localhost -t。这里localhost,-t就是参数,main(int argc, char *argv[])就是为了让程序里面能使用参数,argc是argument count的缩写,表示参数的个数,argv是argument val
2015-08-20 15:33:16
442
转载 用于MAX7456随屏显示器SPI接口的C程序
用于MAX7456随屏显示器SPI接口的C程序David Fry, 应用工程师经理摘要:MAX7456随屏显示(OSD)发生器具有SPI™兼容接口,本应用笔记介绍了SPI接口的工作原理,文中还包含在微控制器内逐位模拟SPI接口的控制器C程序。 MAX7456串行接口MAX7456单通道单色随屏显示(OSD)发生器预装了256个字符
2015-08-15 02:29:03
2961
转载 MAX7456 OSD
使用MAX7456存储器和评估板文件生成定制字符和图形摘要:MAX7456是单通道随屏显示(OSD)发生器,用户可以利用它在动态视频上叠加定制的图形。本应用笔记阐述MAX7456的存储器结构,介绍怎样使用该器件产生定制字符和图形。说明了MAX7456评估(EV)板的文件格式。文章还解释了怎样通过使用表格来轻松处理这些文件。 简介用户可以利用MAX7456单通
2015-08-14 23:03:37
3504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人