- 博客(54)
- 收藏
- 关注
原创 BeagleBoard Black run Ubuntu System
Default user: ubuntu pass: temppwd获取IMG:Get prebuilt image:wget https://rcn-ee.net/deb/rootfs/saucy/ubuntu-13.10-console-armhf-2013-12-17.tar.xzVerify image with:md5sum ubuntu-13.10-c
2014-01-27 10:36:45 1124 1
转载 使用Beaglebone Black的串口UART
Beaglebone Black上有UART1-UART5共5个可用的uart串口,UART0连到了Beaglebone Black新增的串口调试引脚上,我们最后再来说它。我们进入/lib/firmware目录中可以看到系统自带了一些与uart有关的device tree/lib/firmware/BB-UART1-00A0.dts /lib/firmware/BB-UA
2014-01-27 10:01:37 1646
原创 ubuntu环境下的JDBC开发
本文主要介绍在ubuntu的JDBC开发环境以及MySQL数据库的测试验证1.MySQL Server安装配置安装MySQLsudo apt-get install mysql-server配置。配置MySQL在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql
2014-01-13 16:49:27 2092
转载 How to port Ubuntu 11.10 to Beagleboard 怎样移植Ubuntu 11.10 到BeagleBoard
How to port Ubuntu to Beagleboard 怎样移植Ubuntu到BeagleBoardThis note followed article named BeagleBoardUbuntu located at http://elinux.org/BeagleBoardUbuntuFollowing method 1 in that articl
2013-09-13 17:56:50 1006
转载 TI低功耗蓝牙(BLE)介绍
TI低功耗蓝牙(BLE)介绍本文档翻译和修改自参考资料:CC2540Bluetooth Low Energy Software Developer’s Guide (Rev. B),部分图片直接引用自该文档,不一一说明。初稿,待修改。一、概述1、BLE蓝牙协议栈结构附图6 BLE蓝牙协议栈结构图分为两部分:控制器和
2013-09-13 17:54:48 1883
转载 Android4: HDMI system in ICS
Android4.0 framework默认支持hdmi, 工作流程:HDMI状态改变时driver通过UEvent "DEVPATH=/devices/virtual/switch/hdmi" 上报给系统-->系统在PhoneWindowManager中通过UEventObserver中获取状态,并发送 Intent intent = new Intent(
2013-08-09 15:59:40 660
转载 全面总结的广播机制
BroadCastReceiver 源码位于:framework/base/core/java/android.content.BroadcastReceiver.java 广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用Context.sendBroadcast() 、 Context.sendOrderedBroad
2013-08-09 15:57:00 658
转载 关于Android堆内存的设置
大家都知道Android的上层应用是基于 Dalvik Virtual Machine的。Dalvik VM的特点是基于寄存器,相比SUN的JVM(基于堆栈,没有寄存器)来说,理论上完成同样的功能需要的指令条数少,但是指令集复杂。到了Android2.2,Dalvik终于实现了JIT(Just In Time)功能,前进了一大步。近期我们遇到OutOfMemory的错误,通常是堆内存溢
2013-08-09 15:47:12 524
转载 关于Android 添加系统级(java)服务和调用的编写实现说明
本文当主要描述Android添加java 系统级服务的编写实现。一.添加java 系统级服务: 目前网站上介绍的比较多,但是没有很详细的步骤和流程。现总结如下: 以 AlarmManagerService为例 Java层服务顾名思义即为从 Java层提供的服务,它与 C++层的服务不同之处在于其服务进程的运行由系统( ServiceManager)统一维护。在文件 framew
2013-08-09 15:46:36 451
转载 Android的framework层音量控制原理分析--hot(key)处理
Android.media.AudioManager中包含了对android.media.AudioService的跨进程AIDL调用封装。正常处理过程: 1.调整音量是通过AudioManager间接调用AudioService.adjustStreamVolume方法来完成逻辑处理; 2.AudioService调用VolumePanel画出音量调整界面,并发送音量变动广播消息,
2013-08-09 15:32:55 577
转载 Android对Linux内核的改动你知道多少?
我们知道Android是一个开源系统,但是并不彻底,而且Android从多个方面对Linux内核进行了改动与增强,尽管一度和Linux基金会在内核方面闹得不愉快,但是最终也达成了和解。下面将对此进行详细介绍和分析。1 、GoldfishAndroid模拟器通过运行一个Goldfish的虚拟CPU.Goldfish来运行arm926t指令集(arm926t属于armv5构架),并且仿真了输入
2013-08-09 15:27:20 1254
转载 Android耳机插入检测
Android的耳机检测其实代码改动很少的也是因为少吧,所以一直没写文档。就这么拖了将近两个月。 驱动程序有三个实现版本:其一是:drivers/char/micco_hsdetect.c它通过kobject_uevent上报状态给用户空间。其二是:drivers/input/keyboard/micco_keys.c它通过input_report_switch上报
2013-08-09 15:18:57 1228
转载 基于Android平台的无线传感器网络(ZigBee)监控系统
摘要: ZigBee协议实现的WSN,由ZigBee协议的传感节点组成,完成数据采集、处理、上传,执行控制命令。 JavaWeb实现的服务端,由RS232通信,数据解析,持久化层,面向移动终端的Web通信等模块组成。web部分包括了HTTP及XMPP协议的推送服务。 Android平台上的WSN监控软件。目录:[ - ]Wireless Sensor Networks(WS
2013-08-09 14:58:55 1312
转载 C语言嵌入式系统编程修炼
C语言嵌入式系统编程修炼之内存操作篇数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况: (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于
2013-08-09 14:53:24 655
转载 C和汇编混合编程及示例
在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有 OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较好,便于人的理解,而且有大量的支持库。尽管如此,很多地方还是要用到汇编语言,例如开机 时硬件系统的初始化,包括CPU状态的设定,中断的使能,主频的设定,以及RAM的控制参数及初始化,一些中断处理方面
2013-08-09 14:51:22 2507
转载 kmalloc详解
#include void *kmalloc(size_t size, int flags); 给 kmalloc 的第一个参数是要分配的块的大小. 第 2 个参数, 分配标志, 非常有趣, 因为它以几个方式控制 kmalloc 的行为. 最一般使用的标志, GFP_KERNEL, 意思是这个分配((内部最终通过调用 __get_free_pages 来进行, 它是 GFP_ 前缀的来源
2013-08-09 14:08:37 627
转载 Linux设备模型理解
本文从四个方面来总结一些内容: 1.底层数据结构:kobject,kset.2.linux设备模型层次关系:bus_type,device,device_driver.3.集成:PCI设备驱动模型实例及设备,设备驱动注册源码的简单分析. 4.面向对象的思想在linux设备模型中的应用分析. 一、底层数据结构:kobject,kset先说说模型的意义: 总体来说是为了
2013-08-09 14:03:36 666
转载 Linux下makefile教程
什么是 makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都 为你做了这个工作,但我觉得要作一个好的和 professional的程序员, makefile还是要懂 。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写 makefile了,会不
2013-08-09 14:01:46 570
转载 TI OMAP MUX configure
Linux下TI omap芯片 MUX 配置分析(以AM335X芯片为例) 在移植内核的时候,通常会遇到引脚复用(MUX)的配置问题。在现在的Linux内核中,对于TI的ARM芯片,早已经有了比较通用的MUX配置框架。这对于许多TI的芯片都是通用的,这次看AM335X的代码顺手写一下分析,以备后用。一、硬件 对于许多TI的芯片来说,引脚复用的配置是在 Co
2013-08-09 13:58:34 739
转载 I-O 端口和 I-O 内存
在驱动程序编写过程中,很少会注意到IO Port和IO Mem的区别。虽然使用一些不符合规范的代码可以达到最终目的,这是极其不推荐使用的。结合下图,我们彻底讲述IO端口和IO内存以及内存之间的关系。主存16M字节的SDRAM,外设是个视频采集卡,上面有16M字节的SDRAM作为缓冲区。 1. CPU是i386架构的情况在i386系列的处理中,内存和外部IO是独立编址,
2013-08-09 13:54:13 689
转载 /sys/class/gpio 文件接口操作IO端口(s3c2440)
在嵌入式设备中对GPIO的操作是最基本的操作。一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的。其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/class/gpio” 方式。首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入 Device Drivers —> GPIO Support —>
2013-08-09 12:22:16 576
转载 GPIO接口解析
本文提供了一个linux下访问GPIO的约定的概述。这些调用使用gpio_* 命名前缀。没有别的调用会使用这个前缀或是相关的__gpio_*前缀。什么是GPIO? =============== GPIO----“通用目的输入/输出端口”----是一个灵活的软件控制的数字信号。许多种类的芯片都会提供,嵌入式linux开发者和硬件定制者会对
2013-08-09 12:08:53 3755
转载 在Android源码树中添加userspace I2C读写工具(i2c-util)
by @宋宝华Barry通过/dev/i2c-n节点,用户可以在userspace直接访问板上的i2c外设寄存器,主要是透过I2C_RDWR这个IO控制命令将i2c_msg数组传递给kernel去执行。下面的代码可以完成这个功能:[cpp] view plaincopy#include #include #include #include #
2013-08-09 12:07:39 587
转载 Linux芯片级移植与底层驱动(基于3.7.4内核)
宋宝华 BarrySong 21cnbao@gmail.com>新浪微博: @宋宝华Barry 1. SoC Linux底层驱动的组成和现状为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍、中断控制器、SMP启动、CPU hotplug以及底层的GPIO、clock、pinctrl和DMA硬件的封装等。定时器节拍、中断控制器、SMP启动和C
2013-08-09 11:56:22 1305
转载 ARM Device Tree起源
1. ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach
2013-08-09 10:57:24 780
转载 linux下递归删除某个文件夹或文件
Linux系统中文件夹里,有很多exe文件,而且这些exe的文件名是原来的目录名,看起来是他的机器中了病毒。虽然exe文件在linux下无法运行,但是还是要删除这些exe文件。 使用以下方法可以一次性删除某目录及其子目录下所有的exe文件。 find . -name '*.exe' -type f -print -exec rm -rf {} \;
2013-02-25 10:10:40 1032
转载 如何调试bash脚本
2009年8月31日 陈皓发表评论阅读评论5,289 人阅读 Bash 是Linux操作系统的默认Shell脚本。Shell是用来处理操作系统和用户交互的一个程序。Shell的脚本可以帮助用户自动化地和操作系统进行交互。你也可以理解为一种脚本式的编程。即然有编程,那么,程序的编译器,解释器,调试器就必不可少了,Bash也一样,但在调试方面可能会有一些和编程语言不一
2012-12-21 17:52:20 250
转载 如何调试makefile变量
2011年3月1日 陈皓发表评论阅读评论7,891 人阅读 六、七年前写过一篇《跟我一起写Makefile》,直到今天,还有一些朋友问我一些Makefile的问题,老实说,我有一段时间没有用Makefile了,生疏了。回顾,这几年来大家问题我的问题,其实很多时候是makefile的调试问题。所以,就像我在之前的那篇关于GDB的技巧的文章中做的一样,在这里向大家介绍
2012-12-21 17:49:11 272
转载 编程中的命名设计那点事
2009年6月7日 Neo发表评论阅读评论9,217 人阅读 在我开始设计系统的时候,我会花去很多时间去设计命名,因为好的命名和好的设计是分不开的。In the beginning was the Word, and the Word was with God, and the Word was God太初有道。道与神同在,道就是神。 (约翰福音第一章
2012-12-21 17:45:19 297
转载 程序命名的一些提示
2010年1月6日 陈皓发表评论阅读评论4,298 人阅读 选择一个正确的名字是编程中最重要的事。以前酷壳向大家推荐过两篇文章《编程命名中的7+1个提示》 和《编程中的命名设计那点事》,今天再向大家推荐一篇。一个正确的命名可以让你更容易地理解代码的程序,好的命名可以消除二义性,消除误解,并且说明真实的意图,甚至可以让你有清新的气息以让你更能吸引异性。;-)方法
2012-12-21 17:43:46 350
转载 五个编程语言设计的失误
2010年7月14日 陈皓发表评论阅读评论7,336 人阅读 在近几年来,编程语言的设计正在经历着类似于“文艺复兴”的过程,这么说主要是基于下面两个事实:1)多核技术推动着PC消费者更多的关注并行程序。2)动态语言的性能越来越好,其性期已经可以足够用来实现互联网服务,并且它们正在走出“脚本语言”阴影。这篇文章试图收集最重要的编程语言的设计错误,以便让那些程序语
2012-12-21 17:41:46 245
转载 可视化的数据结构和算法
2011年5月4日 陈皓发表评论阅读评论25,367 人阅读 还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看看。我把这个页面的目录列在下面并翻译了一下,大家可以直接点击了。不知道国内的教育有没有相关的教学课件,至少在我大学的时候是没有的。基础
2012-12-21 17:38:46 461
转载 在Web上运行Linux
2011年5月19日 陈皓发表评论阅读评论28,831 人阅读 一个叫Fabrice Bellard的程序员写了一段Javascript在Web浏览器中启动Linux(原网页,我把这个网页iframe在了下面),目前,你只能使用Firefox 4和Chrome 11运行这个Linux。这不是什么假的模仿Linux的东西,这是实实在在的运行一个Linux。这一举动还
2012-12-21 17:20:36 247
转载 20非常有用的Java程序片段
2009年5月23日 陈皓发表评论阅读评论4,297 人阅读 下面是20个非常有用的Java程序片段,希望能对你有用。1. 字符串有整型的相互转换123 String a = String.valueOf(2); //integer to numeric string int i =
2012-12-21 17:07:28 203
转载 如何在Java中避免equals方法的隐藏陷阱
译者注 :你可能会觉得Java很简单,Object的equals实现也会非常简单,但是事实并不是你想象的这样,耐心的读完本文,你会发现你对Java了解的是如此的少。如果这篇文章是一份Java程序员的入职笔试,那么不知道有多少人会掉落到这样的陷阱中。原文转自http://www.artima.com/lejava/articles/equality.html 三位作者都是不同领域的大拿,有兴趣的
2012-12-21 17:06:34 271
转载 Java构造时成员初始化的陷阱
2009年7月3日 陈皓发表评论阅读评论2,513 人阅读 让我们先来看两个类:Base和Derived类。注意其中的whenAmISet成员变量,和方法preProcess()12345678public class Base { Base() {
2012-12-21 17:05:37 255
转载 一些有意思的算法代码
Keith Schwarz是一个斯坦福大学计算机科学系的讲师。他对编程充满了热情。他的主页上他自己正在实现各种各样的有意思的算法和数据结构,http://www.keithschwarz.com/interesting/, 目前这个网页上有88个(见下面的列表),但这位大哥要干135个,你可以看看他的To-Do List。从这个列表上,我们可以看到,他从去年7月份就在自己实现这些东西了,我
2012-12-21 17:02:36 482
转载 享受Android应用程序的Java技术盛宴
数据结构程序开发android多线程java摘要:Java 语言是 Android 开发人员所选的工具。Android 运行时使用自己的虚拟机 Dalvik,这并不是多数程序开发人员使用的普通 Java 虚拟机。Dalvik 支持 Java 编程语言的大部分功能但并不是全部。 Java™ 语言是 Android 开发人员所选的工具。Android 运行时使用自己的虚拟机 Dalvi
2012-12-21 17:00:04 249
转载 JDK里的设计模式
Structural(结构模式)Adapter:把一个接口或是类变成另外一种。java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) javax.xml.bind
2012-12-21 16:58:31 224
转载 Java泛型简明教程
摘要:关于Java泛型的教程,几乎所有的Java程序员不仅听说过,而且使用过它。本文介绍了Java的泛型教程供大家学习、参考。导读:本文是从《Java Generics Quick Tutorial》这篇文章翻译而来,译文来自外刊IT评论《Java泛型简明教程》。内容如下:泛型是Java SE 5.0中引入的一项特征,自从这项语言特征出现多年来,我相信,几乎所有的Java程序员不仅
2012-12-21 16:54:27 221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人