自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TonyHo's NotePad

tonyiot.com 373466062ATqq.com

  • 博客(133)
  • 资源 (14)
  • 收藏
  • 关注

原创 Yocto i.MX6 (TQIMX6) (01) : 3.14.28内核的适配

Freesacle Yocto的环境配置与编译到Freescale下载imx6 Linux Source Code,解压里面的fsl-yocto命名的压缩包得到Yocto setup手册:Freescale_Yocto_Project_User's_Guide.pdf然后按照里面的步骤操作即可编译出一个完整的distribution,当然很可能会因为网络或者一些Package早已不

2015-12-19 23:42:56 12573

原创 Yocto tips (3): Yocto 如何重新编译Linux内核与dtb,并放到deploy目录?

编译内核,并生成uImage+dtb,编译的命令如下:bitbake linux-imx -C compile注意这里的-C的C是大写,和小写的c是有区别的。注意这里的linux-imx是针对imx的内核,你的内核名字可能不一样,关于如何确定一个包的名字,请看:Yocto tips (4): Yocto 如何确定(找到)一个包的名字

2015-12-19 23:36:30 14432 2

原创 Yocto tips (4): Yocto 如何确定(找到)一个包的名字

使用下面命令来却确定:bitbake -s | grep XXX其中XXX为包的关键字,例如linux或者uboot,这样就可以看到所有带有关键字的包了,如下图,就是为了找到内核:

2015-12-19 23:35:17 7777

原创 Yocto tips (2): Yocto Linux内核编译目录在哪?

内核放在了哪里? 这个是放在了如下位置,我们可以用下面命令来确定:bitbake -e linux-imx  | grep ^S=图示:

2015-12-19 23:19:46 7499

原创 Yocto tips (1): Yocto 编译后文件放在了哪里 输出文件位置

编译完成后内核以及rootfs,内核,uboot以及dtb会放在相对于build目录的tmp/deploy/images/MACHINE/下面,这里MACHINE需要可能为空(对于老版本的poky/yocto),也可能是你的板子名字,例如sabresd。对于toolchain,那么放在mp/deploy/sdk/MACHINE/下。图片参考博客:Yocto i.MX6 (T

2015-12-19 23:09:10 9555

原创 Freescale IMX6 Android (7): Android启动动画死循环 Home界面不出来与pid XXX exit 可能的原因汇总

或许你某一次编译了整个Android,然后烧进去,结果屏幕中一直显示Android Bootanimation,Home界面一直不出来。对此,可能有以下五类原因,往这几个方向考虑与调查可能可以提供一些线索。前面两类是属于软件的,后面两类属于硬件。最后一类属于软件硬件都相关。第一类:binder相关binder: release 3000:3000 transaction 12769

2015-12-17 22:16:34 5408

原创 Freescale IMX6 Android (6): 向ServerManager中添加Service

简述前面的博客中,我们直接添加C lib到APK中,然后使用LoadLibrary加载这个库,同时添加一个class来作为中间层,直接使用这个C库中的native函数来控制硬件,这种做法将硬件与APK牢牢绑定,如果有多个APP来访问同一个硬件就会出现问题,代码也会有很多的重复,在Android中,我们使用Android的SystemServer向ServiceManager来将硬件的功能添

2015-12-17 17:08:34 1965

原创 PPT分享: Linux启动流程 关于initrd与initramfs的区分及其发展历程

在电脑的角落发现自己在2013年做的组内技术分享与交流的关于Linux启动的PPT:FS involved in the Linux booting。下载地址:Linux启动流程 initrd与initramfs的区别截图如下:

2015-12-16 11:12:25 1878

原创 Freescale IMX6 Android (5): APP通过JNI控制LED

本篇博客接上一篇的:Freescale IMX6 Android: 基于TQIMX6 给Toolbox添加LED控制程序,上一篇是直接将控制程序放到了Toolbox,本篇则是通过JNI调用C库来完成LED的控制,即APP--> C --> HW。APK的编写(源码见末尾)编写主要需要注意下面个事项与步骤1. 更改xml在layout中添加控件2. Checkbox与Butt

2015-12-12 16:14:54 2523

原创 Freescale IMX6 Android (4): 基于TQIMX6 给Toolbox添加LED控制程序

本篇博文是为了后面的Android HAL层使用LED而做的准备,板子基于TQIMX6Q,Android 4.3,Android已经编译完成了,如果还没有可以参考前面我的博文:Freescale IMX6 Android: 使用HDMI作为Android显示输出的配置,以及TQ提供的开发者手册。LED的硬件连接LED4~6是给用户使用的,如下:可以看到是GPIO3_21

2015-12-10 20:47:31 2879

原创 Freescale IMX6 Android (3): 手动制作Android启动用SD卡 省去MFGTOOLS烧写

Freescale IMX6的烧写方式在Windows下面一般使用MFGTools,但是TQ提供的MFGTools在Windows下面无法工作,USB的驱动不正常。于是想到Linux下面的烧写方式,结果一样出现问题,且因为TQ没有提供一些烧写程序的源码,因此无法更改与调试。因此TQ提供的两种烧写Android的方式都无法使用了,加之前面博文中,我也尝试使用NFS来启动,也没有达到需要的效果,因此这

2015-12-07 23:36:19 5440

原创 Freescale IMX6 Android (2): Android NFS启动问题汇总

前面的一篇博文中,提到了要使用自己编译出来的Android来启动,且使用NFS的方式来启动Android,但是在今天的尝试中却遇到了问题。且最终没有解决,但是找到了替换方案,替换方案见下一篇博文。遇到的问题汇总如下,希望可以帮助遇到同样问题的人。板子用的还是TQIMX6Q(见以前的博文)。Android NFS启动的rootfs制作与启动要制作Android NFS rootfs,

2015-12-07 18:21:19 2170

原创 Freescale IMX6 Android (1): 使用HDMI作为Android显示输出的配置

环境准备与编译个人使用的是Ubuntu 12.04 X64,针对环境的配置,百度即可。板子使用的是TQIMX6Q。lunch目标但是,编译的时候使用的是TQ提供的脚本build_sh,根据这个脚本,可以看到lunch的目标是sabresd_6dq:$ echo $TARGET_PRODUCT sabresd_6dq即,TQIMX6的Android lunch目标其实使用的是sa

2015-12-05 17:57:33 9447

原创 废物利用: 动手将笔记本的显示器改成多功能显示器 可用于电视盒子以及嵌入式开发

方案比较买了一个Cortex-A8的开源板子BeagleBone Black,其输出是HDMI,而我的显示器是VGA的。对此想到了几种方法,各有优劣:HDMI显示方案对比方案详细设备优点缺点价格1HDMI->VGA 转换器简单易用需要VGA显示器几十2HDMI显示器方便占用面积大1000左右

2015-12-05 17:34:22 24845

原创 嵌入式操作系统学习笔记:02.环境搭建兼 Eclipse Jlink 2440 ARM裸机调试

我得环境搭配硬件环境鉴于我们使用的书籍以及源码是针对于Mini2440的,所以我也使用2440芯片的板子,但我只有TQ2440,所以就用这个了调试器使用的是Jlink软件环境Windows 10 X64Eclipseyagarto的 arm-none-gnueabiMSYS与miniGWCygwin的包装者babun下面就是环境的搭建

2015-11-26 21:51:23 4984 1

原创 嵌入式操作系统学习笔记:01.书籍与OS源码选择

书籍选择的是前段时间出版的《深度探索嵌入式操作系统》,同时作者还放出了源码。另外还有其他资源也值得参考学习,列出如下。书籍类资源1.《 深入浅出嵌入式底层软件开发》这本书的前面部分写ARM指令等架构相关的基础知识,写得不错,在基础章节的最后部分也写了一个简单的MiniOS,这个MiniOS非常短小,但是值得一看。这个MiniOS,尝试过在Qemu Mini2440下运行,但是发

2015-11-26 16:22:55 2016

原创 使用Buildroot与Qemu学习ARM linux IIC驱动

Buildroot配置下载最新的buildroot,然后进入 buildroot中进行配置 make mini2440_defconfig make xconfig进入到Kernel配置与选择子项目中进行版本选择,使用4.04版本的Linuxkernel,因为低版本的3.3内核不合适学习的3.4.2内核的I2C驱动。如下图:配置完成后save,关闭。

2015-11-26 08:39:31 4602

原创 SlickEdit中的UTF-8中文显示设置

SlickEdit在Windows或者其他平台均有UTF-8编码无法正常显示的问题默认配置可能会出现乱码可以配置下面这几项来解决1. 配置文件加载的时候使用UTF-82. 设置Unicode Source Window中的Fonts为支持UTF-8的字体这里配置的是ConsolasSlickEdit Encoding的其他常见问题

2015-11-26 07:36:58 5319

原创 VcXsrv: 一个好用的Windows X11 Server

Windows下X11 Server一般的方案X11 Server大家使用的比较多的有三类:Xmanager、MobaXtermCygwin以及其衍生软件(例如babun)这些庞大的软件包使用putty + Xming这三类都有各自的缺点:第一类的缺点是:软件是商业软件第二类的缺点是:庞大,而且cygwin安装容易出现问题,下载慢第三类的缺点是:需要开启两个软件

2015-11-18 22:49:05 40975 3

原创 Zeal与velocity: Windows与Linux下与Mac中Dash类似的API离线查询工具

功能说明 Mac下面有Dash,可以很方便的查询各种程序的API等用法,在Linux下面借助man也可以查询各种API与各种软件的用法,用起来非常方便;但man手册在编程方面也就只有shell与libc相关的API,而Dash则可以下载各种语言的docsets最近google发现Dash早就有Windows与Linux下的替换者:Zeal与Velocity。这两者都是使用Dash的docs

2015-11-18 11:02:48 19666

原创 基于STM32与μC/GUI的多路PID控制器

MIO PID Control Based on STM32大学时代的东西,再发。简而言之,就是一个2入3出的PID控制器(还记得大学的过程控制课程不?)。系统复位后,首先进入的是曲线显示界面,点击 PID_Set 按键即进入 PID 窗口 主面板,然后再点击此页面的 PID_Set 按键弹出参数设定对话框,此时光标的焦点自动 设定到第一组的 Kp 参数编辑框中,系统对 K

2015-10-22 22:33:15 1712

原创 DTB Device Tree 视频教程 - 以瑞萨Cortex-A15为例

上个月初在组内进行了Device Tree 的知识共享交流,主要讲解了一下:Device Tree引入导致的变更如何在dts中添加一个device node与Device Tree相关的API有哪些下面是思维导图的截图:最后是大家需要的视频教程,鉴于个人知识浅薄,如果有错误,请大家多多包涵与评论指出。点击访问:百度网盘连接地址  密码:2cpd

2015-10-22 18:35:24 4137

原创 完整精确导入Kernel与Uboot参与编译了的代码到Source Insight,Understand, SlickEdit

功能描述:写了一个脚本,完整精确导入Linux Kernel u-boot编译过的Source文件与依赖的头文件到下列代码编辑器/IDE中:Source InsightScitools UnderstandSlickEdit脚本实现描述:脚本解析make过程中间产生的文件依赖关系,完整的找到所有被包含的头文件与.c文件,以及依赖的头文件。支持uboot与kernel

2015-10-12 13:03:45 5151 1

原创 ARM Linux BenchMark

背景说明许多公司有很多不同的ARM SoC的研发产品,ARM核心可能有Cortex-A8/A9/A15,核心数可能有单核双核和四核.现在,几乎每出一款手机,网络上马上就有人对其评测.对比和评测不同ARM SoC 芯片以及嵌入式系统是非常有必要的;通过不同的SoC和其运行的OS对比,可以帮助我们了解我们产品的性能,并根据测试得知系统的瓶颈、找出需要改善的方面。嵌入式产品的硬件一般都是

2015-10-12 10:08:05 4563

原创 Speed up Booting Embedded System

嵌入式产品的启动时间一般是一个指标,像大部分Android手机几乎没有为启动加速做过优化,可以改进的地方非常多。当然因为Android用得最多的地方是手机,难得冷启动一次。用户从按下电源键开始,看到启动logo或者启动动画到出现可操作的Home/App画面,需要的时间越少,自然越好,产品的竞争力也越强。一般没有系统的嵌入式设备启动都是上电即进入正常工作流程,这里只说linux/An

2015-10-12 10:05:48 1428

原创 SPI Nor Flash

SPI协议Slave与Master一般而言,提供clock的一方称为master。如下图(7-1)中的SCLK方向可知:Processor为master,而Peripheral为slave。SPI设备接口SPI uses four main signals:Master Out Slave In (MOSI)Master In Slave Out (MISO

2015-10-10 11:43:11 7040

原创 用gitlabCI快速搭建一个GitServer与CI

一般的公司一般都有一个或者多个中央Git Server,托管着所有项目代码;同时当一个项目很大,由许多个工程组成,例如Tizen和Android,那么一般还有Continuous Integration(CI)在有人push代码到工程时编译整个项目,编译出错一般CI会发邮件给提交者和管理者,从而可以及时修正错误。Git Server安装与使用Git server很多,列举一部分:

2015-10-10 11:40:39 12314

原创 Linux驱动开发之内存管理基础

内存管理主要分为:物理内存管理虚拟内存管理物理内存管理页物理内存以页(page frame)为单位,一般为4K,如果是4G的内存那么,将会有一个大小为4G/4K=1M的数组mem_map,每一项保存着每一页的地址。ZoneZone是一些连续物理页的合集,参看下面的图3-2。将物理页分成了3个Zone区:ZONE_HIGHMEM:物理内存高于8

2015-10-10 11:39:39 1381

原创 Linux设备驱动开发基础之互斥与同步基础

一些概念竟态:多个执行路径对同一资源进行操作时可能引发的资源混乱行为(①)。执行路径为并发源。临界区:对共享资源的访问代码片段。临界区只能是在一个进程内部而无法跨进程,因为其不是一个对象,我们无法定义一个临界区对象来告知其他进程,而像Mutex和SpinLock都可以。参考这篇文章。中断和抢占:一般都是在中断需要返回前会调用重新调度函数,如果没有禁止抢占,那么就会被高优先级的进程抢占。有的

2015-10-10 11:37:20 738

原创 Algorithm 4th environment setup

algs4的官方给出环境搭建步骤较多,在github找了一下,看到了aistrate的repo,发现用这个非常方便。[toc] 1. 材料与环境准备1.1 代码与数据准备mkdir ~/algs4wget http://algs4.cs.princeton.edu/code/algs4-data.zip unzip algs4-data.zipgit clon

2015-10-10 11:35:24 2036

原创 SysV Init

RunLevel在提及Unix System-V Init之前,让我们想一想Windows的安全模式与Android的不同启动模式。①在Windows启动的时候,可以按下F8,然后选择“安全模式”启动,而安全模式启动又分为带有网络和不适用网络的安全启动。显然,以不同的安全模式启动,系统在初始化时做的事情也不一样,带有网络的安全模式需要额外的初始化网卡等工作。我不了解Windows加

2015-10-10 11:31:52 1584

原创 SoC performance benchmark

PrefaceThis article would illustrate the programs used to benchmark the SoC(include the SMP) performance, also the step to build and run the benchmark programs.  And at the end, I give 2 scripts t

2015-10-10 11:27:25 2774

原创 u-boot与linux下网卡MAC地址的更改

前言①假设有许多开发板,连接到了同一个路由器中,而路由器的dhcpd是根据MAC地址来分配一个固定的IP地址,那么就需要为每一个开发板设定一个不同的MAC地址从而获取不同的IP地址。②MAC地址是需要购买的(参考点1),在产品出厂之前,都需要给板子一个MAC地址(如果有对应的设备,例如网卡,Wifi)。且这个MAC地址在出厂后,我们并不期望被更改。下面简述了嵌入式产品中如何

2015-10-10 11:20:42 16808 1

原创 嵌入式Linux驱动开发的知识图谱

画了一个图,展示嵌入式Linux开发过程中可能需要的技能、工具、软硬件,嵌入式设备与协议众多,无法画全,点击放大:如果文章有格式问题,请移步:http://www.hexiongjun.com/?p=247转载请注明出处。作者:TonyHo hexiongjun.com

2015-10-10 11:15:12 2064

原创 嵌入式开发中常用商用软件的FreeWare替换

前段时间,找了些开发过程中版权软件的FreeWare(可以商用),大家可以推荐一些其他好用的软件。ItemCatalogCommercial SWAlternative1Office与邮件客户端MS OfficeoutlookOpenOfficeWindows Live mail,Thunderbird,

2015-10-10 11:09:41 1573

原创 使用ARM DS-5与Dstream StreamLine进行Android底层性能分析的一个实例

前言一个类似于Android的OS,只使用了BT机能的状态下,CPU的占有率超过20%,于是我们想看看是什么原因。本篇文章注意介绍了使用Dstream StreamLine来进行性能分析的过程和实例以及可能需要注意的地方。StreamLine准备使用StreamLine来分析性能主要包含以下几个过程配置内核使得内核可以产生一些性能相关的数据,以及一些设施用以支持ga

2015-10-10 11:02:06 6940 1

原创 多线程中的Double Close与System Call Hook

同事在拿到修改后的weston相关的多线程代码中,怀疑有double close。期望我可以帮忙确定出来。修改后的weston,我们拿到的只有一个executive elf文件,并没有source code。对于这种hook要求,一般有三种方法,但是各不相同:修改kernel中的close system call:要求可以编译内核wrap libc中的close():可以直

2015-10-10 10:56:00 1638

原创 完整精确导入Kernel与Uboot代码到Source Insight,Understand, SlickEdit

完整精确导入Linux Kernel u-boot编译过的Source文件与依赖的头文件到SourceInsight与Understand与SlickEdit。 脚本解析make过程中间产生的文件依赖关系,完整的找到所有被包含的头文件与.c文件,以及依赖的头文件。 以后还会添加Eclipse的支持。 可以方便大家在查看Kernel与Uboot代码的时候创建工程。 详情,见github的rep...

2015-07-08 11:20:08 1408 1

原创 <<C++程序设计原理与实践>>粗读 -- chapter8 Chapter9

在第八章中初学者需要掌握的有:      1. 多文件编译                    extern 的用法。                  区分编译与链接,这个在前面已经说过。                  前置声明                  const 常变量                  Head是一个声明的集合

2012-01-22 17:36:05 774

原创 <<C++程序设计原理与实践>>粗读 -- chapter6 Chapter7

不得不说,初学者都该看看这两章.       在看过一些后,不禁的感慨,如果如果当年的当年,最开始看的是这本书,那该多好啊.           那好在哪里呢?      就好在对初学者心理的把握和种种人文提醒:              程序都是从问题出发的,一个良好的程序应该具备....              从开始的引入问题 -> 到对问题的思考 ->提出设计方案

2012-01-08 18:18:31 939

APCS ARM Procedure Call Standard

ARM调用规范

2016-08-02

ARM Thumb Instruction

Thumb指令集, 非常详细

2016-08-02

grub2详解教程

Grub2的中文文档, 讲解了grub2如何编译, 配置, 安装, 加载主题, 如何使用grub2来启动系统等.

2017-02-13

USBHID 讲解

USB HID描述符详细讲解文档,主要描述了USB HID的概念,还有一些例子,重点内容已经加红色标注了。

2017-10-13

Linux启动流程 initrd与initramfs的区别

Linux启动流程 initrd与initramfs的区别,以前做的一个组内交流活动ppt

2015-12-16

imx6 手动制作Android启动用SD卡脚本与fstab

我的博文中提到的脚本, 博文位置:http://blog.youkuaiyun.com/sy373466062/article/details/50208449

2015-12-10

交通灯 51单片机 四位数码管显示倒计时

没有完全写好 但是核心已经解决 大家可以修改一下即可

2009-12-16

AR9170 (支持TP Link WN821N ) Linux 固件 firmware

参考我的博客: 支持的设备如下: 3Com Dual Band 802.11n USB 0x0cf3 0x1010 Actiontec 802AIN Wireless N 0x1668 0x1200 Airlive X.USB 11a/b/g/n 0x1b75 0x9170 Arcadyan WN7512 0x083a 0xf522 Atheros 9170 0x0cf3 0x9170 Atheros TG121N 0x0cf3 0x1001 AVM FRITZ!WLAN USB Stick N 0x057c 0x8401 AVM FRITZ!WLAN USB Stick N 2.4 0x057c 0x8402 Cace Airpcap NX 0xcace 0x0300 D-Link DWA-130 D 0x07d1 0x3a0f D-Link DWA-160 A1 0x07d1 0x3c10 D-Link DWA-160 A2 0x07d1 0x3a09 H3C Dual Band 802.11n USB 0x0cf3 0x1011 IO-Data WNGDNUS2 0x04bb 0x093f NEC WL300NU-AG 0x0409 0x02b4 NEC WL300NU-G 0x0409 0x0249 Netgear WN111 v2 0x0846 0x9001 Netgear WNA1000 0x0846 0x9040 Netgear WNDA3100 (v1) 0x0846 0x9010 500mA Planex GWUS300 0x2019 0x5304 Proxim ORiNOCO 802.11n USB 0x1435 0x0804 Sphairon Homelink 1202 0x0cde 0x0027 TP-LINK TL-WN821N v2 0x0cf3 0x1002 500mA WNC Generic 11n USB Dongle 0x1435 0x0326 Z-Com UB81 BG 0x0cde 0x0023 Z-Com UB82 ABG 0x0cde 0x0026 Zydas ZD1221 0x0ace 0x1221 Zyxel NWD271N 0x0586 0x3417

2015-12-21

Windows ARM Hex Converter V5.2

最新版的ARM 指令转换器,可以转换为Thumb与ARM指令

2016-08-02

imx6 Yocto 内核补丁

参考博客:Yocto i.MX6 (TQIMX6) (01) : 3.14.28内核的适配

2015-12-19

grubfordos

用来加载和启动Windows PE,或者Windows 系统的bootloader

2017-02-13

51单片机完整课程设计上位机实时曲线状态机详细注解

详细内容: http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4375941&bbs_page_no=1&search_mode=3&search_text=QQ373466062&bbs_id=9999 对应上位机: http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4401766&bbs_page_no=1&search_mode=3&search_text=QQ373466062&bbs_id=9999

2011-05-01

Device Tree DTB视频教程Part1,分卷1

Device Tree DTB视频教程,是一个组内的分享。 因为csdn的size限制,Part1有三卷。

2015-10-22

LM317中文资料 注意不是1117 而是317

就是317的中文pdf 没有什么太大的用处 备份而已

2010-06-30

空空如也

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

TA关注的人

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