自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

转载 linux中查看软件文件安装路径

make的原理是执行一个叫Makefile文件里的指令,make的基本用处是自动根据makefile里的指令来编译源文件。它还可以用来做比如安装软件,卸载软件等事情,但前提是作者在makefile里写了。比如makefile里有这么些内容:...install :  然后用make install的话,make程序就会按照上面install:后面的指令执行安装,uninstal

2015-01-30 14:35:49 5996

转载 Redhat Linux RHEL5配置CentOS YUM更新源

http://www.liusuping.com/ubuntu-linux/Redhat-linux-centos-yum.htmlYUM是Redhat Linux在线安装更新及软件的工具,但是这是RHEL5的收费功能,如果没有购买Redhat的服务时不能使用RHEL5的更新源的,会提示注册。由于CentOS是从Redhat演化而来的免费Linux版本,因此可以利用Cent

2015-01-29 12:30:39 730

转载 嵌入式: jffs2,yaffs2,logfs,ubifs文件系统性能分析

http://blog.chinaunix.net/uid-23381466-id-3411483.html在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。那么对于这几个文件系统,如何选择一个针对自己的硬件最合适

2014-04-01 11:13:30 14709 1

转载 spin_lock & spin_lock_irqsave

Spinlock的目的是用来同步SMP中会被多个CPU同时存取的变量。在Linux中,普通的spinlock由于不带额外的语义,是用起来反而要非常小心。在Linux kernel中执行的代码大体分normal和interrupt context两种。tasklet/softirq可以归为normal因为他们可以进入等待;nested interrupt是interrupt context的一种

2013-11-27 14:00:42 805

原创 centos 6.3 samba及ssh配置

Samba网上关于samba配置的文章不计其数,步骤也都小有不同。这里写下我的步骤,仅作为记录。1. etc/samba/smb.conf中[homes]下valid users = %S2. 停止SELinux:setsebool -P samba_enable_home_dirs on。在etc/selinux/config中设置SELinux=disabled,并运行iptabl

2012-12-16 18:16:36 2229 1

原创 centOS yum更新问题解决

centOS 6.3之前在网上找到的更新源,贴到自己的系统里,运行yum...之后,总是提示addons目录的这个URL404。去各个镜像里找了一下,的确没有这个目录,干脆就在更新源里把它注掉了,再按照网上的说法,yum makecache里一下。链接上就没有问题了。但是软件更新仍然不成功,提示warning: rpmts_HdrFromFdno

2012-12-16 16:37:01 9583

原创 安装libncurses5-dev

ubuntu9.10,按照嵌入式开发板用户手册,安装libncurses5-dev时运行#sudo apt-get install libncurses5-dev,但提示找不到软件包。搜到方法如下。(以下http://blog.chinaunix.net/uid-26021340-id-3031278.html)1.写命令sudo gedit /etc/apt/sources.list

2012-04-23 21:00:16 12893

原创 VMware ubuntu安装vmware tools实现与XP文件共享

winXP下,VMware 7.0.1,安装ubuntu9.10。ubuntu中要用到XP分区下的文件,网上提供了制作成ISO和使用VMware共享文件的方法。本文说明后者的步骤。1. 共享文件需要先安装VMware Tools。在VMware中选择安装TOOLS。我的环境里已经安装过了,所以是Reinstall:2. 下载完成后,会自动弹出所在路径./media/...。并可以在该虚

2012-04-23 16:25:18 2348

原创 winCE6.0摄像头驱动buffer分析

winCE6.0摄像头驱动中,buffer的配置方式分为由驱动分配和由用户分配两种,用户指的一般为DirectShow。由用户分配里,如果驱动的DMA准备时间长,则驱动需要知道用户端所有的buffer,分配方式称为CSPROPERTY_BUFFER_CLIENT_LIMITED;如果驱动的DMA准备时间短,则用户可以任意处置其buffer,分配方式称为CSPROPERTY_BUFFER_CLIEN

2012-03-19 15:42:55 1707 5

原创 winCE6.0 摄像头buffer问题

这里仍存疑问的是buffer的配置和关联问题。申请DMA buffer的物理和逻辑地址是在s3c6410_camera.cpp的CameraInit()中,将它们写入寄存器在CONNECT_STATE run的时候。CS_ALLOCATE和CS_ENQUEUE时,将应用层传入的buffer加入CPinDevice的streamDescriptorList中。中断里,将unmashalled的str

2011-11-24 20:42:28 1247

转载 内存地址重建

http://tech.it168.com/a2010/0304/856/000000856396_1.shtml        当应用程序需要调用驱动程序实现的某些功能时,通常需要向驱动程序传递某些必要的信息。这时,可以通过共享内存向驱动程序传递参数,例如利用共享堆或者内存映像文件等。 在大多数情况下,驱动程序的功能都可以通过API调用来加以访问。  这可能带来两个问题:首先,API参数

2011-11-24 19:53:41 723

原创 winCE6.0摄像头驱动分析

分析阅读的是s3c6410 winCE6.0的摄像头驱动,s5pv210虽然也是6.0,但结构大不相同,暂且不提。摄像头驱动是个流驱动,提供两类接口CAM_xxx和PIN_xxx。前者供通过注册表装载硬件时使用,在代码中也叫adapter,指的是摄像头硬件;后者在应用层用dshow显示视频图像时调用,是承载数据流stream的工具,分为preview, capture和video三类,每个Pi

2011-11-24 18:23:05 1500

原创 usbser类图结构小结

虽然不知道最后的产品是否需要这一块实现,但先把最近代码阅读结果记录一下。USB线的两端分别是USB host和USB device,前者识别后者及其配置信息,在需要时可以给后者提供电源。当winCE所在的嵌入式系统与PC连接时,系统作为device,对应的驱动在D:/WINCE600/PUBLIC/COMMON/OAK/DRIVERS/USBFN下,即usb function。当有其他外设如U

2011-06-17 20:52:00 1416

原创 sources文件内宏含义的理解和疑问

<br />英文来自MSDN。中文是我的理解。<br />DEFFILE: This macro definition specifies the name for the module-definition file (.def), known as an export file, for TARGETNAME 指明了定义导出函数的文件的名字。<br />WINCETARGETFILE0: This macro definition specifies nonstandard target files t

2011-06-01 14:10:00 1740

原创 修改bat后要重新open release directory in build window

<br />VS2005, 用“release directory in build window“ make过一遍image,放着,在SMDKV210.bat里把“set BSP_NOUART2=1”的1去掉了,再make image,放到板子里,uart2还是没有。在build window里用SET看了一下,果然BSP_NOUART2还是=1。release目录下也没有smdkv210.bat这个文件。难道需要重编一遍OS?SMDKV210.bat在什么时候才会被用到呢?<br />在winCE6 f

2011-05-16 20:16:00 1295

原创 DEBUGMSG,RETAILMSG,NKDbgPrintfW的实现

从http://blog.csdn.net/bbw2008/archive/2010/12/20/6087738.aspx里看到:NKDbgPrintfW(..)函数一般只在OAL中使用,可以直接从串口中打印出信息,不受编译选项的影响。DEBUGMSG(..)函数只有在工程在Debug模式下编译以后,才会打印出信息来。如果是在Release模式下编译的,就不会打印信息出 来。RETAILMSG(..)函数在Debug模式下和Release模式下编译都会打印出调试信息,但是如果你在工程的属性中的"Build

2011-05-11 09:13:00 2819

转载 SetProcPermissions参数

<br />让当前进程进入内核模式需要使用以下两句:<br />SetKMode(TRUE);<br />DWORD dwPermit = -1;<br />SetProcPermissions(dwPermit );<br /> 查看SDK发现:<br />DWORD SetProcPermissions(<br />  DWORD newperms <br />);This function sets the internal permissions bitmask for the current th

2011-05-10 09:28:00 1283

转载 CDEFINES的用法

<br />http://blog.csdn.net/wulin250/archive/2009/07/24/4377019.aspx<br /> <br />Example:<br />SMDK6410.bat: set BSP_EPSON_S1R72V27=1<br />oallib/sources:   !IF "$(BSP_EPSON_S1R72V27)" == "1"<br />                          CDEFINES=$(CDEFINES) -DEPSON_USB<b

2011-05-09 20:14:00 1838

转载 SouceInsight查看ARM汇编

<br />http://apps.hi.baidu.com/share/detail/4232809<br />Source Insight具备了类型编辑功能,理论上可以支持任何的类型。<br />但是完整的添加一种类型,需要编辑大量的关键字属性以及规则,但是要做到一般的支持还是很简单的。<br />1.   打开Source Insight软件,选定Options里面的Document Options。<br />2.   在Document Type上选择最接近的X86 Asm Source File

2011-04-19 10:34:00 1148

原创 MFC CBitmapButton+文字写入

<br />在class view的工程目录下,添加类CImgButton,继承自CBitmapButton。选择CImgButton类的property,重载DrawItem(不是Message下的WM_DRAWITEM,其响应函数OnDrawItem不会被调用到。为什么?),实现在bitmap上写入文字的功能。代码基本照搬http://topic.csdn.net/u/20070611/09/d59ec937-70b1-49f2-b8df-ff44a87b1a04.html里的,附于本文后。使用时,1)

2011-04-11 22:15:00 2255

原创 MFC CBitmapButton使用

<br />看了几种带皮肤按钮的实现方案,比如自绘按钮http://blog.csdn.net/JamesXing/archive/2008/01/10/2033891.aspx,使用wince GWES的API http://blog.csdn.net/JamesXing/archive/2008/01/10/2033896.aspx,一个自绘不规则按钮的实例http://topic.csdn.net/u/20101118/13/53b2087a-82c2-4cf0-8c45-3a38f87f820c.h

2011-04-11 17:22:00 6949 7

原创 MFC GetWindowRect, GetClientRect和ScreenToClient

<br />网上说,<br />“GetWindowRect()      得到的是在屏幕坐标系下的RECT(即以屏幕左上角为原点)<br />GetClientRect()      得到的是在客户区坐标系下的RECT(即以所在窗口左上角为原点,去掉了标题栏计算,仅仅是个大小,返回值的左上角永远为0,0) <br />ScreenToClient()      就是把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标”<br />对于dialog中的一个button对象,通过GetWindowR

2011-04-08 21:39:00 4880

转载 Cstring转char、string、int等数据类型的方法

格式没改过,有点乱。先备着以后查。http://blog.sina.com.cn/s/blog_43eb83b90100gcub.htmlCString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCString.format(”%s”, char*);char 转 stringstring s(char *);str

2011-03-17 09:32:00 977

原创 stm32 hard fault及堆栈探究

hard fault在调试RTC过程中,程序在主循环中执行两次后就进入hard fault的while(1)中断,keil显示调试窗口显示imprecise data bus error。完善RTC配置的时序也无济于事。网上查到一些hard fault的资料:2.3.2对hard fault, bus fault等有具体的解释。keil的网站上http://www.keil.com/app

2011-03-11 15:19:00 20568 6

原创 STM32 RTC小结

RTC可以用来设置实时时钟,并产生秒中断或闹钟中断。在芯片有电源供电的情况下,系统掉电后仍能保持时钟计时。RTC设置需要涉及对电源(PWR)、备份区域(BKP)和RCC部分寄存器的改写。RTC所需的晶振在RCC部分的寄存器中选择。在芯片时钟系统中对RTC的时钟提供如下图所示。RTC时钟可以从LSI, LSE和HSE分频中选择。这些需要对RCC寄存器的一些位进行设置。RTC的预分频器、计数器和闹钟寄存器在备份区域中,以保证系统掉电后,在电池供电时仍能计数,如下图所示。在电源部分,系统复位后,将禁止向备份区域写

2011-03-10 15:05:00 17097 1

原创 STM32 USART中断小程序

尽管网上的例程一堆堆,但还是花了好几天时间才跑通了一个USART通过中断方式实现的小程序。相当无比地郁闷啊。记录一下遇到的问题:1. 配置RCC的时机在主程序中通过查询方式收发数据时,结果并不稳定。对比了ST提供的例程中的设置,将RCC配置提到了所有配置的最前面后,功能实现。结论:应先配置RCC,再初始化其他外设。2. RAM下调试遇到的问题在上述查询方式的基础上,增加对NVIC的配置,USART的中断设置,以及ISR中的处理过程,放到RAM下调试,无法进入ISR。有以下两个测试结果:1)在主程序while

2011-01-19 17:02:00 5552

原创 解决:keil报错invalid redeclaration of type name "s32"

keil 4.00。在ST官网上下的固件包,用STM32F10x_StdPeriph_Lib_V3.4.0/Project/STM32F10x_StdPeriph_Template里的工程,编译正确。以下尝试了两种新建工程的方法,均失败:1。 将固件包里的例程和相应的CMSIS、StdPeriph_Driver拷到工程下,修改target options里的C/C++ include paths项为“../;../Src/App;../Src/CMSIS;../Src/Lib”,编译报错“D:/Keil/A

2010-12-27 14:04:00 37721 18

转载 MDK中One ELF Section per Function选项功能探究

http://blog.chinaunix.net/u3/102275/showart_2020818.html本文主要探讨的是MDK开发工具中One ELF Section per Function选项对于代码优化的作用及其实现的机制。这里以EK-STM32F开发板的LCDDemo实验例程为例进行说明:1)在MDK的Project -> Options for Target -> Target选项卡下,在Code Generation 中选中Use MicroLIB,选择使用微库。如图1所示:图 1在Us

2010-12-22 13:55:00 16753

原创 STM32 RCC基本原理和配置流程

<br />总是在其他外设的说明里看到HCLK,PCLK类似的字眼,但没有一个清晰的逻辑概念。对系统时钟不了解的情况下,前两天试了下sysTick,情况并不理想,更不要说RTC和TIM了。于是开始看RCC。<br />逻辑框图<br />芯片运行所需的时钟源分为四种,HSE (High Speed External),HSI,LSE,LSI (Low Speed Internal)。系统时钟频率可以通过软件进行控制,设置分频倍频值和该计算的时钟源;对于芯片各外设和总线来说,都有自己运行所需要的时钟,要根据用

2010-12-21 17:03:00 18281 3

原创 STM32控制三轴加速度传感器实现分析(3) end

中断设定某方向的加速度阈值,当传感器测量值超过该阈值时,传感器输出中断信号。信号通过IO扩展芯片的中断管脚与MCU的GPIO相连,进而能在传感器超过阈值时,系统进入ISR。程序初始化时需要进行的与中断有关的设定如下,设定都是通过对寄存器的改写实现的:MEMS:设定输出给IO扩展芯片管脚的中断的高/低电平有效设定中断为非锁存模式。(锁存模式即中断信号需要在读取某个寄存器后才能清除)设定中断的方向和阈值。IO扩展芯片:设定输出给MCU IO口的中断的高/低电平有效,及level/pulse方式使能全局中断功能使

2010-12-16 16:32:00 4749

原创 EXTI和NVIC初探

NVICNested vectored interrupt controller。嵌套向量中断控制器。它是STM32 core peripherals的其中之一,其余为system timer, system control block和memory protect unit。从NVIC的vector table中看出,NVIC type按照优先级从高到低的顺序,可以分为Reset, NonMaskable Interrupt(NMI), Hard Fault, Memory management faul

2010-12-16 15:41:00 11184 1

原创 I2C时序学习笔记

<br />仔细看了下reference manual,需要区分两个名词:<br />输入时钟频率 peripheral input clock frequency。分为at least 2MHz in Standard mode & 4MHz in Fast mode。需要在I2C_CR2寄存器中写入。<br />通讯速度 communication speed。分为standard speed (up to 100kHz) & fast speed (up to 400kHz)。需要使用CR2中写入的频

2010-12-15 21:16:00 8238

原创 STM32控制三轴加速度传感器实现分析(2)

MEMS控制原理在程序动作前,需要初始化系统中断向量表(使用NVIC_SetVectorTable函数),配置系统时钟、使能各外设时钟(SystemInit,RCC_APB2PeriphClockCmd,RCC_APB1PeriphClockCmd)。1。GPIOPB6,PB7分别作为SCL和SDA。查找STM32芯片手册的AFIO部分,将PB6,PB7作为SCL和SDA使用不需要进行重映射,因此只需初始化其模式、速度。2。I2C(1)外设时钟频率外设时钟频率fPCLK1需写入CR2寄存器的最低六位,写入值

2010-12-07 20:13:00 5863

原创 STM32控制三轴加速度传感器实现分析(1)

买的stm32F107VC开发板,带三轴加速度传感器LIS302DL,附带的示例代码。学习了几天,总结如下。1。逻辑结构初始化各外设(RCC,GPIO,SPI,NVIC,I2C,LCD)——检测MEMS并显示检测状态——在死循环中不断查询加速度值并描画。2。硬件原理与该程序相关的硬件连接图:MEMS连接图MEMS引出脚与MCU(左)、IO扩展(右下)连接图LCD连接图LCD引出脚与MCU(左)、IO扩展(右上)连接图从图中可以看出,MEMS使用I2C接口SCL和SDA连接MCU;LCD使用SPI3接口连接M

2010-12-07 16:31:00 8836 1

原创 多传感器应用程序小结

一个OK6410 wince下跑的小应用程序,显示摄像头及另外两个传感器的工作数据。今天做了点扫尾,总结如下。1。修改OS,使进入OS后自动运行应用程序。方法来自飞凌的OK6410用户手册。抄录如下。以HellowWorld.exe为例所修改文件位于下面所示路径:/WINCE600/OSDesigns/S3C6410_DEMO/S3C6410_DEMO/RelDir/Samsung_SMDK6410_Release1)将应用程序“HelloWorld.exe”拷贝到上述路径下2)建立HelloWorld.t

2010-12-06 19:51:00 1701

原创 STM32 RVMDK JLINK下flash和RAM调试方法

stm32f107vc开发板,uvision V4.00u,JLINK V8,J-Link ARM V4.08l。flash 下调试方法:1.打开要调试的工程,左栏工程上右击options for target。进入debug中选择jlink.2. utility中选择jlink.3. 用JLINK连接PC和开发板,打开开发板电源。进入旁边的settings,添加flash烧写方法。4。一路OK回去,rebuild,ctrl+F5进入调试,可以单步和断电。根据ST公司的reference manual 2.

2010-12-01 22:30:00 14221 2

转载 open-drain and pull-push

http://blog.myspace.cn/e/401987906.htm推挽与开漏  漏极直接输出,不接上拉电阻。如果对于场效应管印象不深,理解为普通三级管好理解:就是集电极开路。 参考资料:A:先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右

2010-11-30 13:58:00 1957

原创 ok6410 wince6.0 进入OS后屏幕旋转方法

<br />由于硬件连线太短,需要将屏幕显示旋转180度。网上搜到两个方法。其一在OS里实现翻转,一劳永逸;其二在应用程序里实现翻转,掉电后消失。如下。<br /> <br />---------------------------------------------------<br />在WinCE中做Screen Rotation,首先确认显示设备的驱动是否支持Screen Rotation功能。在显示设备支持的前提下,可以通过以下两种方法做Screen Rotation:<br /> <br />1

2010-11-24 09:58:00 2015 10

原创 RVMDK建立STM32工程

网上搜到很多这样的帖子,但只说到建立起一个工程,没说到怎么做出一个可以软件仿真调试的小程序;或者给了段程序代码,没说到怎么配置其他的库。我自己在RVMDK里编译的时候总是报各种各样的链接错误,摸不着头脑。摸索了一阵搞定了,步骤记录如下。1. 在工程文件夹下添加"src", "lib", "obj", "list"子文件夹.2. [project]----[new uVision project]---选择STM32F107VC---[ok]----[yes]3. [Setup file extensions

2010-11-23 11:05:00 2047

原创 sim300 GPRS模块与服务器TCP通信完成

这两天写了个arm wince6下的小程序,实现了用arm通过串口控制GPRS模块,使GPRS模块能发短信、打电话、与公网服务器间收发数据。东西很简单,一些逻辑控制,简单的时序,几个消息传递。网上搜了搜,草草翻阅了电子书,一点点收集得到的信息:1. GPRS结构:MS:移动台BSS:无线基站子系统SGSN ( Service GPRS Surporting Node ) 服务GPRS节点:记录移动台的当前位置信息,移动分组数据的发送和接收,为服务区内用户提供双向分组路由。和MSC ( 移动业务交换中心 )

2010-11-18 15:15:00 9965 3

WinCE6_0下双模终端的USB转串口驱动开发

介绍了嵌入式操作系统WinCE6·0下的流接口驱动模型及USB驱动模型结构,以使用流接口驱动模型开发 的通信模块的USB转串口驱动程序为实例,详细介绍并分析了基于流接口驱动模型设计USB设备驱动程序的过程。 实验证明所采用的面向对象的程序设计方法及其思想,对其他类似嵌入式系统软件的设计有较强的参考价值。

2011-08-08

WinCE6_0下双模终端的USB转串口驱动开发

介绍了嵌入式操作系统WinCE6·0下的流接口驱动模型及USB驱动模型结构,以使用流接口驱动模型开发 的通信模块的USB转串口驱动程序为实例,详细介绍并分析了基于流接口驱动模型设计USB设备驱动程序的过程。 实验证明所采用的面向对象的程序设计方法及其思想,对其他类似嵌入式系统软件的设计有较强的参考价值。

2011-06-17

空空如也

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

TA关注的人

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