自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【RSLogix5000】—(2.1)—RSLogix5000常用指令介绍——原理

这几天腰疼哇,不知道是不是在厂房配电室地板睡觉睡的。。。。。当然,也有可能是。。。。。嘎嘎。。。。 今天主要介绍那些基本的指令吧,具体软件的应用我也在熟悉中,还有如果有RSLogix5000(20.01版本)、RSLinx等软件不能授权的可以私密我,我把我的那个破解授权的东东给你啊。。。 一、位指令 XIC、XIO、OTE、OTL、OTU、ONS、OSR、OSF

2013-08-25 13:51:47 30787 3

原创 【RSLogix5000】—(1.1)—厂房ControlLogix系统介绍(硬件介绍)——原理

这两天一直在想该怎么去把我要学的通过文字来表述出来,有点小迷茫,不知道该从哪里写起。最后,我决定以我们厂房的硬件为介绍的开端,根据自己学习RSLogix5000的过程来写出我学习AB的PLC的过程吧!我们厂房的控制系统属于ControlLogix系统。它的控制器为ControlLogix(这个系统有号几种控制器,厂房里用的是RSLogix556x)!它的基本结构含有:控制器;I/O(输入/

2013-08-19 19:58:39 3825 2

原创 【RSLogix5000】—丫的得学习RSLogix5000编程啦!

不得不说自己丢弃了很多东西,大学刚刚毕业,喜欢的东西跟工作的东西还是有很大的差距的,知道现在我还是很迷茫的。     在大学里,我很高兴去玩单片机、ARM、Linux这些东西,用我们毕设老师对我的评语就是“位于专业编程与非专业之间的人,比专业的要差,但是要比那些非专业的要好很多”。这也就是我为什么认为我的毕业设计很简单的原理吧,STM32第一次用这款芯片,完成了我的毕业设计,当然我很高兴,

2013-08-14 14:58:41 4450 3

原创 【Tiny6410 And Linux】—(6.2)—LCD 驱动测试程序(BMP 显示位图)——代码

刚才看个小视频,关于华山游客滞留的,哎,真是花钱买罪吃,下回一定得选好旅游地点! 少点废话,上一篇文章是关于 LCD 测试程序(BMP 显示位图)的基本原理的介绍,今天就发一下代码吧,由于中间遇到点小问题,我的测试程序总是出现Segmentation Fault这样的错误,上网查了查也没有看到什么好的解决方法,最后还是找的国嵌的源码来对应的,是一个关于指针和传递函数的问题,这里我会在我的代

2012-10-04 13:32:55 2964

原创 【Tiny6410 And Linux】—(6.2)—LCD 驱动测试程序(BMP 显示位图)——原理

既然闲着也是没有事情做,干脆还是写点东西吧。 今天还是 LCD 驱动的一个测试程序,是为应用程序添加显示位图的功能,具体就是读取 BMP 图片,然后再开发板的屏幕上显示出来!下面是有关 BMP 的详细介绍可以看看,个人感觉写的非常的详细!BMP 格式介绍 其相关的代码会严格按照上述介绍来组织的(bitmap 格式的图像文件会带有 54 字节的信息头,其中包含了图像和文件的基

2012-10-02 16:18:07 2234

原创 【Tiny6410 And Linux】—(6.1)—LCD 驱动测试程序——代码

又过了好几天了,呵呵,应该说玩了好几天! 貌似要找工作了,有点发愁啊,不过现在还是坚持写写东西吧,暂时不想去想那么多(如果突然有那么份工作摆在面前,那该多好啊!)。 由于这里没有涉及到写驱动,所以也就没有这部分,不过把测试程序弄完,然后就写一篇驱动程序出来应该问题也就不会那么大了吧! 1、测试程序 #include #include #include #inc

2012-10-01 16:25:25 3042 1

原创 【Tiny6410 And Linux】—(6.1)—LCD 驱动测试程序——原理

总算要涉及到LCD的驱动程序了,不过之前还是先弄一下LCD的测试程序的好(这里看的是国嵌的代码)!之前在电脑上找了很久的LCD的驱动程序,也就是xxxfb.c,但是真心看不懂究竟是哪个驱动,但是共性的文件fbmem.c还是可以了解的,这里就通过fbmem.c来进行简单的介绍吧,至于涉及到的相关的硬件设备(今天写的驱动测试没有涉及到硬件的具体信息),只能等以后再说了!LCD 驱动测试程序

2012-09-28 09:55:32 2828

原创 【Linux Device Driver】—(3.1)—ioctl——代码

《Linux Device Driver》这本书的却做的很好,对于一个初学者来说虽然有点难度,但是只要认真看,绝对是大有裨益的!好了,昨天把ioctl的原理以及涉及到的代码贴了一下,今天就做了做实验,感觉还凑合,所以就贴出来!对自己也算是做个笔记吧!今天这个实验主要就是通过ioctl来控制LED灯的亮灭,虽然有点简单,但是毕竟也是需要花费点时间的。1、驱动程序①、t

2012-09-25 15:36:50 1722

原创 【Linux Device Driver】—(3.1)—ioctl——原理

大部分驱动除了需要具备读写设备能力外,还需要具备对硬件控制的能力,例如:要求设备报告错误信息改变模特率,这些操作常常通过ioctl方法来实现!这里的东西看上去的却挺多,但是还是依照此次的原则,只是对自己知识的一个复习,所以也就懒得贴那么多的文字。 1、ioctl方法 用户空间:int ioctl(int fd, unsigned long cmd, ...);原型中的省

2012-09-24 16:59:05 2716

原创 【Linux Device Driver】—(2)—Concurrency and Race Conditions——代码

做了做这个信号量的实验,不过用到了异步通知,也就是通过内核来通知应用程序(具体就是按键按下后,内核通知应用程序可以进行读操作)!在《Linux Device Driver》这本书里我查过了,在下章节会介绍到,但是也懒得改代码了,所以就这样贴出来吧,马上也就要写一下异步通知这个很实用的动动。。这里我用的是互斥锁,还可以设置 O_NONBLOCK 位。1、驱动程序①、t

2012-08-19 16:47:41 1195

原创 【Linux Device Driver】—(2)—Concurrency and Race Conditions——原理

关于并发控制,说实话,这本书介绍的太 TM 详细了,尤其是关于 rwsem 结构的函数,木有用过啊,它也不给几个例子看看,呜呜了。。 网上比较好的介绍这个东西的可以看看这个链接:http://blog.csdn.net/lanmanck/article/details/4606775 这里由于只是介绍我个人的东西,所以,读写信号量我感觉我不会涉及太多,你懂得(还不到水平)!

2012-08-16 08:51:18 896

原创 【Linux Device Driver】—(1)—Char Drivers——代码

上一篇文章简单介绍了下几点需要注意的,我今天看了看那本书,发现 register_chrdev() 和 unregister_chrdev() 这两个函数即将要退出时代的舞台。。。。。但是我发现这个家伙要比注册 cdev 这个家伙简单多了。。。。 这里把代码简单的搞一下拉到,主要是实现 LED 灯的全亮和全灭,实现下简单的字符设备,当然还要用到 ioremap 这系列函数!无非就是把

2012-08-14 19:34:46 804

原创 【Linux Device Driver】—(1)—Char Drivers——原理

好久没有写过这些东西了,自己也是无聊的很,也不知道这几个月我在干些什么。。。 哦,对了,貌似一直在玩坦克世界,表示很蛋疼。。 好几个月没哟接触过这些东西,毕竟忘记很多,所以决定从新复习一遍吧,我是借的学校的《Linux Device Driver》这本书,由于是全英文版的,所以好多东西都不是很懂,尤其是其中的好多单词,但是大体还是可以分析一下的,所以决定记录一下这个学习过程吧。

2012-08-09 09:37:22 1071

原创 RHEL6—关闭 SELinux

之所以写这篇文章是因为最近重新装了系统,然后换了个 RHEL6 来玩玩!可是谁知道配置的时候还是遇到了点问题!尤其是 Samba、NFS、TFTP 等等的配置都是学习嵌入式 Linux 驱动程序的必备品,,如果不关闭掉 SELinux,那么这些东西都不能正常运行(关于如何配置这些应该都是很了解的吧,不知道的 Tell 我,我告诉你啊,呵呵)!关闭 SELinux 成了必需品的先前条件!

2012-06-05 14:13:18 4276

原创 【Tiny6410 And Linux】—(5.2)—RamDisk 驱动实现(自己绑定 make_request_fn() )——代码

直接来吧! 1、驱动程序 ①、blk.c#include #include #include #include #include /* printk() */#include /* kmalloc() */#include /* everything... */#include /* error codes */#include #include

2012-05-25 15:52:27 1704 3

原创 【Tiny6410 And Linux】—(5.1)—RamDisk 驱动实现(内核缺省的处理函数 __make_request())——代码

电脑总算是修好了!但是 JBL 音响又 TMD 出了问题!真心不逗!~~ 1、驱动程序 ①、blk.c#include #include #include #include #include /* printk() */#include /* kmalloc() */#include /* everything... */#include

2012-05-25 15:49:00 899

原创 【Tiny6410 And Linux】—(5.2)—RamDisk 驱动实现(自己绑定 make_request_fn() )——原理

电脑总是 TMD 坏!很让人烦气!块设备实验做完了,那个令人纠结的错误竟然是自己没有在意 x86 平台和 ARM 平台的驱动,所以 Makefile 是直接 cp 以前 ARM 平台的驱动来的,一堆错误!让人蛋疼拘谨!查啊查,后来找到国嵌源码,一看 Makefile,擦!顿时石化!好了,上一篇文章是关于内核的一个 IO 调度器,对于 ramdisk、U 盘、记忆棒之类的设备,并不存

2012-05-23 11:36:14 2868

原创 【Tiny6410 And Linux】—(5.1)—RamDisk 驱动实现(内核缺省的处理函数 __make_request())——原理

相信看过我写的文章的会大吃一惊!为什么突然由 2 到了 5,这也跨度太大了点吧,呵呵,不是的,因为前面的国嵌的几天的课程真的看不懂!你懂得!现在水平的确有限!DM9000 和 PCI 串口,这两天的内容只能暂时放下了,没有很好地教程,自己看了两天“瓶颈”又很多,所以~~ 好了,从今天开始就是块设备的驱动了!努力!哼哼! 1、块设备简介块设备将数据存储在固定大

2012-05-21 14:56:57 1551

原创 【Tiny6410 And Linux】—(2.4)—实现 input 模型按键驱动——代码

好了,白去修了趟电脑!日了,FUCK!初步鉴定是宿舍的电源不稳定,导致的!好了,赶紧的贴完代码,去趟自习室。 1、驱动程序 ①、input_btn_dev.c#include #include #include #include #include #include #include #define DEVICE_NAME "tin

2012-05-15 22:06:45 1682 1

原创 【Tiny6410 And Linux】—(2.4)—实现 input 模型按键驱动——原理

电脑的电源那特别烫!!!最讨厌的就是电脑出毛病了了,现在还得用别人的电脑,哎~~伤不起啊!回头又得花钱、花时间修电脑了!一想到这里就不爽!不过今天的学习进度还是要跟上的,通过 input 型模型按键驱动,看了看大概的,我感觉就是对驱动程序简化了!没有了 read、write、open、close 函数,貌似是内部集成似的,呵呵,所以用起来也就是简单多了!我感觉就可以有三个步骤,

2012-05-15 16:44:43 2027 1

原创 【Tiny6410 And Linux】—(2.3)—使用工作队列处理按键中断——代码

做了做用工作队列处理按键中断的实验,对中断开始明白~~呵呵~~其实今天就是加了个全局变量(虽然这在驱动程序中不是很合适吧),还有就是加了个消抖(就是通过延时等待而已)! 1、驱动程序 ①、plat_btn_dev.c#include #include #include #include #include #include #include #

2012-05-14 23:07:22 1777 1

原创 【Tiny6410 And Linux】—(2.3)—使用工作队列处理按键中断——原理

休息了整整一个星期,(*^__^*) 嘻嘻……,一个字,爽!!!一个星期没有学习了,也就没有贴这些东西喽。不过今天是新的开始,所以就打算贴点东西上来,还是按键中断,不过是通过工作队列来实现的!我买的视频没有这些东西,所以只能自己看喽,我个人感觉使用工作队列来处理按键中断,很大的好处是可以消抖!别的还真没有看出什么东西来,呵呵。还有就是工作队列和等待队列是啥子关系呢暂时还真的不清楚。

2012-05-14 19:42:29 1511

原创 【Tiny6410 And Linux】——基于 platform 总线的按键驱动——代码

拿的国嵌的源码,稍微改动了,有几点还是不是很明白,但是也不能一直这么看啊看的!因为明天要考试,所以今天就赶紧发了!伤不起的,晚上看 PLC,呵呵! 1、驱动程序 ①、plat_btn_dev.c#include #include #include #include #include #include #include #define DEVI

2012-05-07 16:55:42 1308

原创 【Tiny6410 And Linux】—(2.2)—Linux 中断处理——原理

有点小烦躁!!! 1、Linux 中断接口函数 ①、request_irqrequest_irq头文件#include 函数原型int request_irq(unsigned int irq,irq_handler_t handler,unsigned long flags,

2012-05-06 13:54:55 1432

原创 【Tiny6410 And Linux】—(2.1)—platform 总线、设备、驱动——代码

platform 无非就是内核中有一条总线而已,方便移植!个人感觉没有跟自己创建总线是木有区别的!当然相关的函数内核就自己处理了,省事,呵呵! 1、内核代码 ①、device.c#include #include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE

2012-05-06 11:02:09 1065

原创 【Tiny6410 And Linux】—(2.1)—platform 总线、设备、驱动——原理

后天就要考试了,PLC,呵呵,这个还不算什么事情,所以呢,继续! 1、platform总线介绍 一个现实的 Linux 设备和驱动通常都需要挂载在一种总线上,对于本身依附于 PCI、USB、I2C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里,SoC 系统中集成的独立的外设控制器、挂载在 SoC内存空间的外设等确不依附于此类总线。基于这一背景,Linu

2012-05-06 10:42:09 958

原创 【Tiny6410 And Linux】—(1.5)—driver 设备模型——代码

三个中的最后一个! 1、内核代码 ①、bus.c还是跟上面的文章的一样,我依旧粘贴!! ②、driver.c#include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE_LICENSE("GPL");extern struct bus_ty

2012-05-05 13:52:37 751

原创 【Tiny6410 And Linux】—(1.4)—device 设备模型——代码

这三个程序本是一体的!但是一开始写的时候有这个顺序,所以也就来这个顺序吧!! 1、内核代码 ①、bus.c这个代码跟上一篇文章的代码一样,我也就是拷贝的! ②、device.c#include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE_L

2012-05-05 13:48:24 640

原创 【Tiny6410 And Linux】—(1.3)—bus 设备模型——代码

又是一个周六,放假!无所事事,干脆整整代码吧,谁知道这也遇到不少问题,各种内核异常!!!!不过最后还是查出问题来了,主要是内核版本的更新,有的元素不再包含了! 1、驱动程序 ①、bus.c#include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE_LIC

2012-05-05 13:42:38 794

原创 【Tiny6410 And Linux】—(1.5)—driver 设备模型——原理

外边阴天了,看来避免不了一场大雨的降临!!在宿舍,挺爽的,喜欢雨,喜欢大雨!! 1、驱动描述结构 在 Linux 设备模型中,总线由 device_driver 结构表示,定义在 中。struct device_driver{ const char *name; /* 驱动程序的名字(体现在 sysfs 中) */ struct bus_t

2012-05-04 17:20:08 804

原创 【Tiny6410 And Linux】—(1.4)—device 设备模型——原理

上一节原理中有一个特别重要的东西:总线也是一个设备,必须按照设备注册!1、设备描述结构在 Linux 设备模型中,总线由 device 结构表示,定义在 中。其中 release 是必须要设置的!!!struct device{ struct device *parent; /* 父设备 */ struct device_pr

2012-05-04 16:57:05 765

原创 【Tiny6410 And Linux】—(1.3)—bus 设备模型——原理

今天能解决那个 kset,完全出乎自己所料,本来想以后遇到再说,呵呵。既然解决了,然后按照进程是 bus 设备模型! 首先,要明确,总线,设备,驱动,三者不分家!!就是说,这节写的总线,以及接下来的设备和驱动是相互联系的!而且这三个例程也是相互联系的,都是根据总线来创建设备,接着是驱动! 1、总线概念 总线是处理器和设备之间的通道,在设备模型中,所有的设备都通过总线连接

2012-05-04 16:24:25 720

原创 【Tiny6410 And Linux】—(1.2)—kset——代码

昨天做实验的时候没有成功,真的挺烦的,我怕我继续不下去,不过今天阳光挺好的,心情也就好点了,所以也就可以好好看看了!!竟然在 kset 的创建过程中,新版内核跟老板内核还是有差距的,其中 ktype 在新版内核中是必须要加的,(*^__^*) 嘻嘻…… 1、驱动程序 ①、kset.c#include #include #include #include #i

2012-05-04 14:04:52 700

原创 【Tiny6410 And Linux】—(1.2)—kset——原理

kobject 和 kset 本来就是相辅相成的,由于 kobject 只能创建一个目录,不能创建包含目录的目录,这里就要用到 kset!仔细观察 kobject 和 kset 结构中,在 kobject 结构中,有一个 struct kset *kset; 的结构声明,在 kset 结构中(马上就会写出来),有一个 struct kobject kobj;的结构声明,很明显它们是互相配合的喽

2012-05-03 12:36:13 656

原创 【Tiny6410 And Linux】—(1.1)—kobject——代码

总该有个先后,原理在上一篇文章也有介绍,所以这篇文章就是代码喽~~ 还是先是程序,然后是图! 1、驱动程序 ①、kobject.c #include #include #include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE_LICEN

2012-05-02 17:50:45 628

原创 【Tiny6410 And Linux】—(1.1)—kobject——原理

开始学习设备驱动模型的学习,今天是 kboject 的相关原理! 从面相对象的观点,各种内核对象类都有一个基类, C 语言用结构封装类,围绕结构的操作函数为类的方法函数。内核对象的基类结构为 kobject。 不过说白了,我个人感觉跟 proc 文件系统是有很大相似点的(它们都是基于 ramfs 的文件系统)! 1、kobject 结构 kobject 是内核各种对

2012-05-02 14:07:05 829

原创 【Tiny6410 And Linux】——LED 驱动程序设计——代码

换了个博客写东西,可能因为这个博客更专业点吧,新浪博客我以后就会对我的爱好做个专门的总结,我的欧美音乐,就是你啦!!!!还有就是 CSDN 贴代码真的好方便,大爱啊!!今天呢,还是五一放假中,所以还是特别的悠闲的,不过五一过了之后就一定要继续学,嵌入式 Linux 内核的深入,(*^__^*) 嘻嘻……,期待,等待!!LED 驱动程序设计,原理以前在新浪早就写了,是国嵌

2012-04-29 22:30:02 2120 3

空空如也

空空如也

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

TA关注的人

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