自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 车机上输入法显示不全问题解决方案

在车机上,导航栏在左侧,目的是离驾驶员近一点,方便操作。但是有一个问题,输入法显示不完整。本文是笔者自己研究的一个解决方案,分享给大家,欢迎交流。

2024-02-27 19:07:06 1162

原创 STM32硬件复位后无法启动

       最近遇到一个很奇怪的问题,把STM32的reset脚拉低后再拉高,也就是所谓的硬件复位,按道理来说,STM32应该重启才对,可是并没有,连main函数都没进去,然后再反复做几次硬件复位,有时又可以重启,奇怪。我把代码里的其他业务逻辑去掉,仅仅初始化串口打日志。然后再硬件复位,可以重启。大致推断,硬件复位后,应该是卡死在了串口中断,我把串口中断都禁止掉,再硬件复位,可以正常重启。 后来...

2018-04-20 12:03:56 9268

原创 printf重定向问题

我用的STM32型号为STM32F100VBT6B重定向方法一:#ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PRO...

2018-03-20 19:38:01 1591

转载 win7+linux双系统下删除linux系统

装了Windows和linux双系统的朋友,在后期要删除linux是个比较头痛的问题,因为MBR已经被linux接管,本文的目的是如何在windows 和linux双系统下,简单,完美地卸载linux。使用MbrFix.exe卸载Windows双系统Linux  www.2cto.com  不用Windows系统安装盘,不用安装矮人DOS工具箱也可以很简单地实现卸载Linux。双系统卸

2015-05-26 16:48:45 1167

原创 tiny6410按键驱动总结

写了7个版本的按键驱动:      1.查询法:在应用程序的while循环里不停的调用read函数读取按键值,太耗费CPU资源了。      2.中断发:同样是在一个while循环里不停的调用read函数读按键值,但是这个程序里用了个等待队列,没有按键按下时,调用read函数进程会休眠。当有按键按下时,在中断服务程序里会唤醒休眠的进程,从而读取到按键值。相对于查询法,耗费的CPU资源少了很

2014-12-24 21:23:00 480

原创 tiny6410按键驱动(七)---定时器延时消抖

驱动程序如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2014-12-24 21:19:03 531

原创 tiny6410按键驱动(六)---异步通知

驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2014-12-24 21:00:02 404

原创 tiny6410按键驱动(五)---同步互斥阻塞

驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2014-12-24 20:55:25 390

原创 tiny6410按键驱动(四)---poll机制

代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #

2014-12-24 20:52:17 471

原创 tiny6410按键驱动(三)---中断发

驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2014-12-24 20:36:00 368

原创 tiny6410按键驱动(二)---查询法

废话少说,直接贴代码吧:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc

2014-12-24 20:32:11 344

原创 tiny6410按键驱动(一)---驱动框架

看了韦东山老师的视频后,自己动手写了几个驱动。这些驱动都是照着韦东山老师程序的框架写的,但绝非复制粘贴。之前我看了视频,再看看代码,感觉蛮简单的,以为自己会了。但是当我自己写的时候才发现,经常出现各种错误。我用的开发板是tiny6410,韦老师用的是2440。我板子上用的内核是linux-2.6.38,韦老师用的是linux-2.6.22.6,所以有些内核函数有些区别。还有一个奇葩的问题是我在开发

2014-12-24 20:28:20 507

原创 linux下在qtcreator里装qwt插件

文章在我的qq空间里,地址:http://user.qzone.qq.com/1208963539/2

2014-12-20 22:36:55 544

原创 linux杂项设备驱动框架

Linux里面的misc杂项设备是主设备号为10的驱动设备,它的注册跟使用比较的简单,所以比较适用于功能简单的设备。它有自己的设备结构体: struct miscdevice  {     int minor;     const char *name;                                  //在/dev/下创建的节点的名字     con

2014-12-17 20:00:09 479

转载 解决6410执行rmmod出错的办法

原文地址:http://blog.csdn.net/cp1300/article/details/7994014最近看了一段时间韦东山老师的视频教程,看就了印象不深,还是动手写吧。于是就照着韦老师的驱动框架写了个小驱动,编译没问题,执行insmod命令也没问题,可就是在执行rmmod命令时老师出现错误“ Segmentation fault“  ,在/dev下的设备节点依然存在。昨晚折腾了

2014-12-13 15:44:13 1044

原创 linux usb驱动框架(一)

一下代码来自韦东山视频,我只是加了些注释/* * drivers\hid\usbhid\usbmouse.c */#include #include #include #include #include #include static struct usb_device_id usbmouse_as_key_id_table [] = {{ USB_INTERFACE_INFO(USB_INT

2014-12-07 10:57:30 412

原创 s3c2440触摸屏驱动

以下程序来自韦东山视频里讲解的驱动,我只是在其中添加了些注释#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include struct s3c_ts_regs {unsigned long

2014-12-06 20:38:18 318

原创 Linux设备驱动总的并发控制

并发和竞态广泛存在,中断屏蔽,原子操作,自旋锁和信号量都是解决并发问题的机制。中断屏蔽很少单独被使用,原子操作只能针对整数进行,因此自旋锁和信号量应用最为广泛。      自旋锁会导致死循环,锁定期间不允许阻塞。驱动工程师应谨慎使用自旋锁,而且在使用中还要特别注意如下几个问题:      1.自旋锁实际上是忙等锁,当锁不可用时,CPU 一直循环执行“测试并设置”该锁直到可用而取得该锁, C

2014-12-04 08:56:04 395

原创 linux下进程间通信

//代码singal.c#include#includevoid sig_deal(){ static int cnt=0; printf("receive singal SIGUSR1:%d times",++cnt);}int main(int argc,char **argv){ signal(SIGUSR1,sig_dea

2014-11-27 15:49:55 314

原创 字符设备驱动实例

/*本程序通过创建量数组来模拟一个字符设备*//*驱动程序如下*/#include #include #include #include #include int dev1_registers[5];int dev2_registers[5];struct cdev cdev; dev_t devno;/*文件打开函数*/in

2014-11-25 16:32:04 458

原创 led驱动(一)

这是最简单的led驱动程序,通过这个程序可以学习基本字符设备

2014-11-25 15:41:21 429

原创 tiny6410异常处理例程分析

.globl _start_start:/* 0 地址 */b reset                 /* 复位时,cpu跳到0地址 */ldr pc, =undefined_instruction  /* cpu遇到不能识别的指令时 */ldr pc, _vector_swi             /* 当执行swi指令时, 进入SVC模 式 */@ldr

2014-11-21 22:42:57 317

转载 如何开启VMware串口

如何开启VMware串口先前在玩GEC2410时,有个想法,就是在linux下进行调试,由于目标板上电或复位时会发送信息给PC机的串口,这已在windows下实现过,于是想在linux下看看效果,可是当时我在linux下设好串口后,发现一点反应都没有,当时以为是自己没有安装交叉编译环境,于是昨天晚上把嵌入式 linux下的交叉编译环境装好后,心想这下应该可以拉,没想到我上电目标板,linu

2014-11-21 21:24:33 766

原创 tiny6410学习笔记--时钟配置

// 功能:汇编初始化时钟.global clock_initclock_init:// 1. 设置各PLL的LOCK_TIME,使用默认值,LOCK_TIME成为锁定时间,//设置这些的目的是因为时钟的倍频需要一定时间才能达到稳定,这里三个PLL的LOCK_TIME用的都是//6410手册中的默认值,其实也可以不用设置。 ldr r0, =0x7E00F000

2014-11-17 15:40:05 421

转载 ARM汇编指令ldr和MOV的区别

2、MOV指令MOV指令可以把立即数或者寄存器内容(注意:这里绝对不可以是内存!!)传递给一个寄存器。 MOV对于立即数是有要求的,就是上边的“8位图”数据。只能由一个8bit连续有效位通过偶数次移位得到的数。 它为什么会有这样的限制呢?原因是,MOV本身就是一个32bit指令,除了指令码本身,他不可能再带一个可以表示32bit的数字,所以用了其中的12bit来表示

2014-11-16 21:17:53 1265

转载 Linux内核与根文件系统的关系

Linux内核与根文件系统的关系开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件。”一.什么是文件系统文件系统指文件存在的物理空间,linu

2014-11-16 14:28:07 340

原创 用dnw给tiny6410下载裸板程序

用dnw给tiny6410下载裸板程序步骤一:用友善之臂提供的工具SD-Flasher.exe把友善之臂提供的superboot-6410.bin烧写到SD卡。详细文档见友善之臂的文档《tiny6410刷机指南》 步骤二:     把tiny6410开发板设置成SD卡启动模式,插入刚烧写了superboot-6410.bin的SD卡,同时用putty连接好开发板,启动开发板

2014-11-15 21:48:08 722

原创 tiny6410学习笔记--在Qtopia2.2.0中添加自定义程序组

2014-11-15 21:02:54 247

原创 改变全局变量值得两种方法

方法一:指针法#includeusing namespace std;void change(int *a);void main(){    int t;    change(&t);   //注意这里是传入变量的地址,而方法二是直接传入变量名    printf("%d",t);      system("pause");     }

2014-10-22 20:46:45 3898

转载 sizeof(struct )大小讨论

原文地址:http://blog.163.com/feyeye@126/blog/static/4351010920091082551515/ struct 结构大小和顺序、#progma pack参数有关系针对字节对齐,环境使用的gcc version 3.2.2编译器(32位x86平台)为例。char 长度为1个字节,short 长度为2个字节,int 长度为4

2014-10-21 22:43:54 285

原创 strlen和sizeof的区别

1.strlen函数原型:size_t strlen( const char *string ); 只能传入char型指针作为参数strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。  char aa[10];cout //结果是不定

2014-10-14 09:34:10 239

转载 java学习笔记5--静态函数与静态代码块

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的.静态方法在类加载的时候就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的

2014-09-23 22:34:36 285

转载 java学习笔记4--java 静态方法和实例方法的区别

java静态方法和实例方法的区别静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。 

2014-09-23 20:32:55 293

原创 java学习笔记3--参数的传递方式

java参数的传递方式有两种:值传递和yin值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指

2014-09-23 19:58:04 409

转载 linux内核简介

Linux内核结构   Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。1.进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法

2014-09-23 19:49:19 282

原创 java学习笔记2--数组的定义

在java中数组有两种定义方法     方法一:静态初始化,静态初始化时,显示指定的数组元素值得类型必须与new关键字后的type类型相同,或者是其子类的实例,j静态初始化时不需指定数组的长度,只需初始化数组元素的值即可。例1:int[] a = new int[]={1,2,3,4};例2:Object[] obj=new String[]{"java","pengcha

2014-09-23 08:30:49 290

转载 fedora 17 添加yum更新源

fedora17 正式版出来了,禁不住那华丽的烟花桌面的诱惑,我在virtual box安装体验了一下。等有时间再试一下硬盘安装方法,今天总结一下怎样添加fedora 17 yum 软件源。fedora中的yum源列表不像ubuntu那样全在一个sources.list文件中,而是每个源对应一个.repo文件,(这样分开管理会方便一些)它们都放在同一个目录下,路径是:/etc/yum.re

2014-08-07 21:37:08 455

原创 linux驱动学习笔记1--字符型驱动的编写

memdev-driver为一个虚拟设备的驱动程序,这个虚拟设备就是一块内存。memdev-app是对应的应用程序。read-mem.c , write-mem.c是操作设备文件memdev0的read-mem2.c ,write-mem2.c是操作设备文件memdev1的整套驱动及应用软件的开发流程如下:1.写好驱动程序2.为驱动写Makefile,且Makefile文件要与

2014-07-04 19:14:17 606

原创 linux学习笔记--在qtcreator上安装qwt插件

linux学习笔记2-在qtcreator上安装qwt插件----------------------------背景------------------------------------------------------------------------------------平台:装有fedora17的虚拟机VM------------------------

2014-06-18 19:36:12 862

原创 win7下QtCreator中qwt插件的安装

win7下QtCreator中qwt插件的安装先准备好如下相关安装文件:qt-win-opensource-4.8.5-mingw.exeqt-creator-2.6.2-src.zipqwt-6.1.0.zipMinGW-gcc440_1.zip再按如下步骤安装一.安装mingw,其实就是解压MinGW-gcc440_1.zip,可

2014-06-18 19:30:46 597

linux下的网卡驱动

这是一个linux下的有线网卡驱动。只需自己编译安装即可。

2014-06-17

空空如也

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

TA关注的人

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