自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 收藏
  • 关注

原创 使用Eclipse开发嵌入式linux应用程序

1. 安装Eclipse for C/C++ developer的版本 2. 安装交叉编译工具链 若Eclipse使用不正常(如在新建工程的时候出现"Plug-in org.eclipse.cdt.ui was unable to load class org.eclipse.cdt.ui.wizards"错误等),可尝试用oracle官方提供的JRE替换掉ubuntu自带的O...

2014-07-04 17:01:42 364

原创 STM32启动过程分析

硬件: STM32F1系列软件环境:Keil 4.54注:本文中提到的RTOS以RT-Thread为例,不涵盖所有RTOS的情况 在Keil MDK中新建工程时会根据所选的device自动生成启动代码文件startup.s,该文件的作用可根据其头部的注释看出This module performs:;* - Set the initial SP;* - Set the in...

2014-06-28 20:25:16 458

rt_mutex里owner的作用

在rt-thread源码中的rt_mutex_take()里有这样一段代码if (mutex->owner == thread) { /* it's the same thread */ mutex->hold ++; } 之前不理解在什么情况下线程会重复进入其所持有锁的保护区域,后来看到Vxworks Program...

2014-06-26 17:17:27 789

原创 RingBuffer - 原理与实现

1. 原理参考http://blog.chinaunix.net/uid-9407839-id-3954445.html      环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。通过移动读指针和写指针就可以实现缓冲区的数据读取和写入。在通常情况下,环形缓冲区的读用户仅仅会影响读指针,而写用户仅仅会影响写指针。如果仅仅有一个...

2014-06-26 17:05:15 6485

原创 《Linux Kernel and Driver Development Training》笔记

附件是一篇介绍linux内核和驱动的英文slides,简明扼要,相比厚重的书籍更能突出重点,以下是基于该slides的一些笔记 linux内核源码查看(参考P59-P62):1. 客户端方式:可利用Ubuntu12.04及之后版本自带的Kscope工具2. Web方式:使用lxr(linux cross reference),登录http://lxr.free-electr...

2014-06-24 23:02:24 316

Vmware使用技巧

使用版本: Vmware player 6主机:Windows7宿主机:Ubuntu10.04 参考附件sitara-linuxsdk-gsg.pdf文档中的”How to Build a Ubuntu Linux host underVMware“一章(P13-P26) 1.文件共享 在“虚拟机设置->选项->共享文件夹”里设置主机下的共享位置,宿...

2014-06-24 17:22:02 107

原创 I2C说明

         下图摘自NXP的SAA7144的手册     在写操作中,DATA传送完后slave器件内地址会默认自增,直到master产生stop信号。在读操作中,DATA传送完后若master产生了应答信号,则slave器件内地址自增,master不产生应答信号意味着master不再接收新的数据。  以下请参考附件TI_I2C.zip中的文档     Devices...

2014-05-29 15:55:54 150

原创 Linux头文件

1.内核编程使用头文件 The base files are located in the include/ directory in the root of the kernel source tree. For example, the header file <linux/inotify.h> is located at include/linux/inotify...

2014-05-23 11:52:40 86

原创 (转)可变参数宏(Variadic Macros)的应用

http://blog.csdn.net/hinyunsin/article/details/6546670 前言:我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们...

2014-02-08 10:39:15 81

mbed项目

mbed项目http://mbed.org/是由ARM公司sponsor的一个开源项目,使用Apache2.0许可证。目前对NXP的demo板支持的比较多,还有一款Freescale的,ST最近刚加入。感觉和Arduino很类似,API抽象度很高,比较简洁(但相对于用STM32库函数编写的代码,可读性较差),适合快速prototype开发,而且其使用了现在流行的Online IDE(内含C...

2013-12-25 16:30:16 280

C语言中的大数(big integer)提升

第一个程序char.c unsigned char x = 2;signed char z = 5;if((x-z)<0) printf("x-z<0\n"); else if((x-z)>0) printf("x-z>0\n"); 输出结果是 x-z<0  第二个程序int.c unsigned int ...

2013-12-03 19:32:16 594

原创 C语言进阶

如何写出优美的C代码http://www.ibm.com/developerworks/cn/linux/l-cn-cobject/#author用C语言实现持续的多态性http://www.ibm.com/developerworks/cn/linux/l-cn-cpolym/C语言的强符号和弱符号http://blog.csdn.net/chgaowei/article/detai...

2013-12-01 12:26:44 100

原创 DS-5和MDK-ARM(Keil)

DS-5的历史演变:SDT-->ADS-->RVDS-->DS-5 MDK = MDK-ARM = KEIL for ARM = KEIL MDK = Realview MDK概念澄清参考http://www.myir-tech.com/resource/494.asp 早期的比较,来自英蓓特 http://www.embedinfo.com/wen-list...

2013-11-14 11:04:52 542

原创 MDK-ARM 分散加载文件

    Scatter Loading分散加载文件的概念http://www.keil.com/support/man/docs/armlink/armlink_Cegbbcjj.htm    Image映像文件组成http://www.keil.com/support/man/docs/armlink/armlink_Bhccdacb.htm     ARM映象文件各组成部分在存...

2013-11-13 16:19:33 359

原创 STM32-Debug相关(Keil+Jlink/ST-Link)

    Serial Wire Debug(SWD) is a two pin alternative to JTAG and has about the same capabilities except Boundary Scan is not possible.     ST-Link只支持SWD模式,而ST-Link/V2和Jlink同时支持SWD和JTAG模式. 参考S...

2013-10-11 10:44:15 1154

原创 STM32-ADC相关

1.多路ADC配合使用DMAhttp://blog.csdn.net/jdh99/article/details/7815268官方的Firmware library(V3.5)里只有一个channel的example,可参考AN3116--STM32™’s ADC modesand their applications,该AN中ScanContinous的例子是含多个channe...

2013-09-03 19:22:13 113

原创 STM32-Timer相关

 1.TimeBase结构体参数试用范围    根据stm32f10x_tim.c库文件,在使用TimeBase功能的初始化结构TIM_TimeBaseInitStruct中    TIM_CounterMode适用于TIM1~TIM5,TIM8    TIM_ClockDivision适用于除TIM6,TIM7以外的所有Timer    TIM_Period和TIM_Pres...

2013-08-29 19:13:25 122

原创 回调函数

http://learn.akae.cn/media/ch24s05.html 一般情况下参数类型都是由实现者规定的,而回调函数的参数按什么类型解释由调用者规定,对于实现者来说就是一个void *指针,实现者只负责将这个指针转交给回调函数,而不关心它到底指向什么数据类型。 在底层驱动中会经常使用,因为上层应用程序调用底层驱动,而底层驱动并不确定上层程序要实现的功能,这为分层设计...

2013-08-15 14:31:19 81

原创 STM32-Misc

1. STM32不使用外部晶振时OSC_IN和OSC_OUT的接法如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理:1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。2)对于少于100脚的产品,有2种接法:  2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。  2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD...

2013-08-14 17:07:21 1622

原创 STM32-中断相关

STM32 为了适应不同的优先级组合,设置了 GROUP 的概念,组是一个大的框架,在组下分别分配了占先优先级与副优先级。每一个中断都有一个专门的寄存器(Interrupt Priority Registers)来描述该中断的占先式优先级及副优先级。在这个寄存器中STM32 使用4个二进制位描述优先级(Cortex-M3 定义了8位,但 STM32只使用了4位)。--转自《稀里糊涂学STM32...

2013-07-30 19:39:18 114

原创 Cortex-M3技术解析

1.Bit-banding  将寄存器的位映射为一个32 bit的变量,避免位的与或操作,是一种空间换时间的技术2.Core-sight调试系统能对代码就行更深入的追踪3.Systick为定时操作的任务调度提供一个方便的实现方式4.NVICARM7和ARM9是不支持中断嵌套的,实现中断嵌套往往需要操作系统的支持,NVIC的出现增强了中断应用的灵活性其中的Tail-chaining技术减少了多个中...

2013-07-28 23:22:53 119

原创 STM32-GPIO相关

1. GPIO端口的输出速度设置GPIO的引脚速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与你的程序有关。http://bbs.ednchina.com/BLOG_ARTICLE_104445.HTM 2. 重映射有不少引脚上配备了来自多个模块的复用功能引出脚,在使用引脚的复用功能时,需要注意在软件上只可以使能一个外设模块,否则在引出脚上可能产生信...

2013-07-28 21:36:13 101

原创 STM32的Ethernet通信

官方的standard peripheral library(STSW-STM32054)中并没有相应的example 可参照STSW-STM32026(说明文档AN3102  LwIP TCP/IP stack demonstration)和STSW-STM32030(说明文档AN3226  IAP over ethernet)其中都含ethernet固件库和LwIP...

2013-07-23 16:32:22 1319

原创 STM32的IAP固件升级

AN2606  system memory boot mode固化在system memory中的bootloader支持利用各种串行接口(USART,CAN,USB)下载新的用户程序,并将新的用户程序置于内部main memory中的设定区域 AN3155  USART for bootloader指令集详解 AN2557  IAP using USART将0x0...

2013-07-23 15:58:56 448

原创 STM32的Flash操作

总结概括:http://www.elecbench.com/?p=875应用实例:http://www.ichanging.org/stm32-flash.html 官方笔记(中英文)参加附件由于官方笔记中不带相应例程,实际编程可参考库文件中的example 说明:busy等待是在库函数FLASH_Status FLASH_WaitForLastOperation(uin...

2013-07-23 10:25:03 212

原创 Git详解

http://blog.jobbole.com/25944/反对声音:http://blog.jobbole.com/15023/

2013-07-02 14:37:58 63

RTOS相关

1. RTOS的ABC讨论http://blog.csdn.net/coolbacon/article/details/7798874 摘录:由于硬实时的一个最大的好处就是行为可预测,加上RTOS实现的简洁,大量的测试,其可靠性和稳定性是非linux和windows这样的桌面级操作系统能比的。RTOS大都异常简洁。这是好听的话,说句不好听的,就是简陋。特别是没有一个统一的驱动结...

2013-06-18 15:23:47 90

原创 Cortex-M3/M4 hard fault排查

log查询方式:http://www.rt-thread.org/phpBB3/viewtopic.php?f=2&t=2300 IDE方式:http://www.keil.com/appnotes/files/apnt209.pdf  

2013-06-18 10:36:41 292

原创 Doxygen+Graphviz

注释风格: http://www.cnblogs.com/wishma/archive/2008/07/24/1250339.htmlGUI使用: http://wildpointer.net/2012/04/14/doxygen_graphviz/配置选项说明: http://ticktick.blog.51cto.com/823160/188672 使用Graphviz需两...

2013-05-17 17:00:05 83

原创 推荐李云的博客

程序中的段、堆、栈http://yunli.blog.51cto.com/831344/186896http://yunli.blog.51cto.com/831344/187794 编程好习惯http://yunli.blog.51cto.com/831344/275313 精确包含头文件http://yunli.blog.51cto.com/831344/29147...

2013-05-13 23:22:52 112

原创 Keil MDK配置和使用

参考http://blog.csdn.net/zhzht19861011/article/details/5964827或附近文档补充:勾选Utilities选项卡中的Updata taget before debugging,可以避免在debug前忘记download最新生成的axf文件 有趣的Keil MDK细节http://www.cnblogs.com/heiyue/p...

2013-05-06 13:18:20 1304

原创 (转)SPI常见传输错误解答

http://www.dzsc.com/data/html/2011-3-25/89304.html 1. SPR设定错误  在从器件时钟频率小于主器件时钟频率时,如果SCK的速率设得太快,将导致接收到的数据不正确(SPI接口本身难以判断收到的数据是否正确,要在软件中处理)。  整个系统的速度受三个因素影响:主器件时钟CLK主、从器件时钟CLK从和同步串行时钟SCK,其中SCK...

2012-11-13 09:23:37 14278

原创 QString,QByteArray和const char*的相互转换

http://stackoverflow.com/questions/5505221/converting-qstring-to-char  In order to convert a QString to a char*, then you first need to get a latin1 representation of the string by calling toL...

2012-11-08 15:55:01 1386

原创 Arduino相关

Arduino音乐制作http://www.geek-workshop.com/thread-288-1-1.html 使用 Processing 用 Android 设备控制 Arduinohttp://app.wepost.me/controlling-arduino-with-android-using-processing Android,Arduino,Lab...

2012-09-26 16:05:47 138

原创 电子制作

实验电路的拆解与器材的收纳http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1011&extra=page%3D1 面包板的秘密http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1070&extra=page%3D1...

2012-09-21 11:35:03 121

原创 (转)QT中pro工程文件的编写

http://blog.csdn.net/fjb2080/article/details/4833666 要自己全部写pro文件又有点麻烦,所以,一般都是先运行      qmake -project来生成基本的pro文件。例如你有一个工程目录为backup,那么在这个目录下就会生成backup.pro文件。 对一般的工程,我们只需要修改几个基本的常用的选项,下面说说怎...

2012-04-28 14:46:20 65

原创 QT正则表达式的使用

http://www.cnblogs.com/frankbadpot/archive/2009/10/18/1583617.html 1. 用正则表达式验证文本有效性你可以使用QRegExp::exactMatch来判断一个字符串是否符合一个pattern。  void testRegexMatch(){ QString pattern(".*=.*");...

2012-03-16 16:13:25 393

原创 (转) 双系统重装win7/Xp后如何恢复ubuntu引导

http://www.cnblogs.com/dolphin0520/archive/2012/03/11/2390175.html         1)准备一张ubuntu系统安装盘;        2)将ubuntu系统安装盘放入光驱,重新启动计算机,进入BIOS,将开机启动设置为光驱(CD/ROM)启动方式;        3)然后保存设置退出,等待片刻就进入到ubuntu...

2012-03-13 23:19:37 67

原创 (转)QT中FTP中文乱码解决

 FTP服务器在收到List指令后,会把当前文件夹的所有项目(包括文件夹和文件的名称,大小,时间,所有者等相关信息)列举出来并返回给FTP客户端。曾经在网上看到有人说过这样一句话:“ftp 在编码问题上相当笨,笨到对编码一无所知”。确实,多数FTP服务器在返回这些名称时采用的文字编码格式为ANSI。这是一个不太好的格式,英文字符占用一个字节存储空间,非英文字符占用两个字节存储空间,长度不一...

2012-02-16 15:39:46 888

原创 QWidget, QMainWindow, QDialog的区别和相互转换

  QDialog和QMainWindow都是继承自QWidget(无边框),QDialog有Accept()方法(方便窗口间调用),QMainWindow有最小化按钮(适合做主窗口)和statusbar(方便显示信息,但局限于只能显示单行)。QDialog和QWidget是可以相互转换的,但QMainWindow和QDialog之间不可以。 http://zxwmail.blog....

2011-12-30 15:37:29 1231 1

空空如也

空空如也

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

TA关注的人

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