自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 917

原创 VMware的虚拟机NAT模式和主机ping时通时不通,网络配置都没错就是不正常

检查主机的服务项中,VMware NAT service和VMware DHCP service是否都在已启动状态

2015-12-30 08:57:54 2839 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 950

原创 VirtualBox的虚拟机镜像在Vmware里无法安装

正常的步骤新建vmware虚拟机,默认的硬盘接口是scsi的,这里把scsi接口的硬盘移除,新建sata接口的硬盘并选择.vmdk为磁盘文件。

2015-12-29 15:59:52 647

转载 dmesg命令

‘dmesg’命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构、cpu、挂载的硬件,RAM等多个运行级别的大量的系统信 息。当计算机启动时,系统内核(操作系统的核心部分)将会被加载到内存中。在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备。dmesg 命令的使用范例‘dmesg’命令设备故障的诊断是非常重要的。在‘dmesg’

2015-12-24 14:47:51 2313

原创 gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’

查看顶级的Makefile可以把gcc拷贝到对应的目录或者更改目录为你的Gcc我直接拷贝了之前的Gcc

2015-12-22 09:57:01 25859 2

原创 解决Win10-PL2303驱动安装自动更新问题

恼人的Win10驱动自动更新,让开发板的PL2303串口起不来,安装一个exe文件后,再次拔插又会自动更新,禁用更新又提示是不失败。解决办法:右键Prolific USB-to-Serial   ——》 更新驱动文件——》从计算机的设备驱动程序列表选取——》选取之前版本的驱动 芯片驱动不起来,

2015-12-18 16:12:30 3901

转载 AlarmManager研究

AlarmManager研究侯 亮 1.概述        在Android系统中,闹钟和唤醒功能都是由Alarm Manager Service控制并管理的。我们所熟悉的RTC闹钟以及定时器都和它有莫大的关系。为了便于称呼,我常常也把这个service简称为ALMS。        另外,ALMS还提供了一个AlarmManager辅助类。在实际的代码

2015-12-02 00:27:59 372

转载 AlarmManager研究

AlarmManager研究侯 亮 1.概述        在Android系统中,闹钟和唤醒功能都是由Alarm Manager Service控制并管理的。我们所熟悉的RTC闹钟以及定时器都和它有莫大的关系。为了便于称呼,我常常也把这个service简称为ALMS。        另外,ALMS还提供了一个AlarmManager辅助类。在实际的代码

2015-12-01 22:57:08 255

转载 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 414 1

转载 C mysql

软件开发中我们经常要访问数据库,存取数据,之前已经有网友提出让鸡啄米讲讲数据库编程的知识,本文就详细讲解如何使用Mysql的C语言API进行数据库编程。       API,全称Application Programming Interfaces,即应用程序编程接口,我们可以调用这些接口,执行API函数提供的功能。       Mysql C语言API就是用C语言编写的Mysql编

2015-11-23 09:57:15 411

原创 Git教程

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

2015-10-24 16:45:10 267

原创 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 7148 1

原创 【小技巧】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 2849

转载 Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)

在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的。写那篇文章的目的,是想彻底的了解从硬件到驱动,再到应用的运作流程。完成了之后,文章一直仍在草稿箱里面没发表;今天看到,决定整理一下,重新发表。目的是想和大家分享自己对Android系统的一点认识:以马达为代表,来考究“Android是如何一步步

2015-09-17 09:53:11 979

转载 应用层 ---> framwork层JNI ---> 驱动c

======================== 驱动: 内核:android-kernel 2.6.36  (必须对应你的板子上内核,不然会出现insmod错误) 目的:通过android应用层用户空间访问内核空间驱动程序。 实验:Button控件,点亮和熄灭LED。 注明:android应用层访问驱动,一般有2种方法来访问到硬件驱动程序。 这里讲解个人看法,各位别介意。

2015-09-16 17:07:29 586

原创 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 487

转载 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 2423

转载 Android硬件抽象层(HAL)概要介绍和学习计划

Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,

2015-09-14 18:42:48 302

转载 当你在内核源码路径里敲下make 时会发生什么。

https://github.com/0xAX/linux-insides/blob/master/Misc/how_kernel_compiled.md 本文会告诉你当你在内核源码路径里敲下make 时会发生什么。当我刚刚开始学习内核代码时,Makefile 是我打开的第一个文件,这个文件看起来真令人害怕 :)。那时候这个 Makefile 还只包含了1591 行

2015-09-14 17:35:22 1594

原创 Kernel Kconfig:warning: leading whitespace ignored

make menuconfig时候警告警告的Kconfig修改好的Kconfig

2015-09-14 11:03:23 733

原创 烧录Kernel.img PopMetal新板蓝牙功能不正常

repo sync下来的代码默认是支持PopMetal旧板子的,新板旧板的区别是wifi&bt 芯片(在GPS和WIFI天线之间的芯片)分别采用了AP6335  、AP6476 ,所以必须在kernel目录下的menuconfig配置成AP6476就可以了。

2015-09-09 15:49:37 459

原创 使用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 6607

原创 修改PopMetal蓝牙设置(驱动,下拉状态栏,设置菜单)

一个客户应用到开发板wifi功能,但是不想用蓝牙功能,要关掉蓝牙的功能,第一个反应是make menuconfig 中把蓝牙关掉。编译烧录,蓝牙功能并不影响。想起popmetal旧板子和新板子的区别在于Wifi&BT的芯片,而且之前的AP6335的wifi驱动代码是和AP6476兼容的,所以考虑修改回6335应该也可以使蓝牙功能异常。修改dts中队蓝牙子节点的status=disabl

2015-09-09 14:33:52 753 1

原创 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 8516

转载 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 467

原创 *** 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 5206

原创 修改RK3288-PopMetal的printk的波特率

客户需要修改Debug Port的波特率,查看了代码试着折腾了下。在这里记录。被修改文件的路径在上面这是uboot层的调试口的波特率。这里显然限制了波特率的范围,可能是考虑到串口时钟和分频比取整之后的误差。尝试调到115200以上,显示乱码。没进一步深究,以后要用到再继续往下跟代码。只修改了以上文件,Debug Port打印出的内容如下。说明调试串口在kernel层,重新初始化了一

2015-09-07 14:20:52 2021

原创 Android development 国内镜像

安卓官网

2015-08-31 17:56:24 395

转载 Vim命令合集(貌似有的有错误,Mark在这里,用到的时候来找)

命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 file3 ...在vim窗口中打开一个新

2015-08-31 10:00:01 536

原创 F6快捷键解决vim中的^M

竟然还是个历史原因 计算机的史前史,那时的打字机使用两个字符来开始一个新行。首先是一个字符命令使打印头移回开始位置(回车,),然后另一个字符命令控制向前进纸一行(进纸,).在计算机诞生之初,存储设备十分昂贵。于是有人就提出没有必要用两个字符来表示一行的结束。UNIX一族决定只用进纸一个字符<LineFeed>来表示行尾。来自苹果阵营的人则把回车作为换行的标准。MS-DOS(和微

2015-08-31 09:58:25 990

原创 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 2406

转载 Android中JNI的使用方法

首先看一下Android平台的框架图:(网上盗用)      可以看到Android上层的Application和ApplicationFramework都是使用Java编写,底层包括系统和使用众多的LIiraries都是C/C++编写的。  所以上层Java要调用底层的C/C++函数库必须通过Java的JNI来实现。下面将学习Android是如

2015-08-28 16:05:33 304

原创 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 3765

转载 Android framework系统默认设置修改

Launcher 总结: 1、launcher的布局太居中,要想两边拉伸    apps_customize_pageLayoutPaddingLeft">40dp    apps_customize_pageLayoutPaddingRight">40dpapps tab栏的宽度(Launcher2 icon 数目、大小)\packages\a

2015-08-26 17:18:48 1831

转载 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 3016

转载 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 286

转载 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 402

转载 用于MAX7456随屏显示器SPI接口的C程序

用于MAX7456随屏显示器SPI接口的C程序David Fry, 应用工程师经理摘要:MAX7456随屏显示(OSD)发生器具有SPI™兼容接口,本应用笔记介绍了SPI接口的工作原理,文中还包含在微控制器内逐位模拟SPI接口的控制器C程序。 MAX7456串行接口MAX7456单通道单色随屏显示(OSD)发生器预装了256个字符

2015-08-15 02:29:03 2795

转载 MAX7456 OSD

使用MAX7456存储器和评估板文件生成定制字符和图形摘要:MAX7456是单通道随屏显示(OSD)发生器,用户可以利用它在动态视频上叠加定制的图形。本应用笔记阐述MAX7456的存储器结构,介绍怎样使用该器件产生定制字符和图形。说明了MAX7456评估(EV)板的文件格式。文章还解释了怎样通过使用表格来轻松处理这些文件。 简介用户可以利用MAX7456单通

2015-08-14 23:03:37 3325

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除