价格 | 564.00元 |
---|---|
区域 | 福建省 |
来源 | 厦门光沃自动化设备有限公司 |
详情描述:
IMD-310/5F
IMD-310/5F
新的framebuff驱动核心思想是:直接操作显示区域,需要自己写的framebuff驱动里没有画点、画圆、显示字符、显示汉字等的具体操作。这些操作在framebuff驱动框架里已经实现,无需自己编写。下面记录下framebuff驱动的编写过程,lcd硬件部分仅保留修改lcd显示区的IO映射和数据写入即可。
手上这款lcd自带控制器,只能通过读写其提供寄存器和他交互数据,不能直接映射他的显示区域。所以我在驱动里申请了2个和lcd显示缓冲区一样大小的内存,一个用于模拟framebuff驱动需要的共享内存区域,另一个用来保存这个模拟共享区域的快照,用于比对共享区域的变化。当检测到共享内存区域的变化后,将这个变化通过lcd的寄存器写给lcd,这样就能实现共享区域的变化能被同步反映到lcd设备上。
在内核的drivers/video/目录下有很多fb设备的驱动,我找了个简单的dnfb.c作为参考,以他为蓝本实现我的驱动。首先修改drivers/video下Kconfig,添加:
config FB_DISPLAY
tristate“WHZYDZ lcd support”
depends on FB && ARM
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
接着修改Makefile,添加:
obj-$(CONFIG_FB_DISPLAY) += zydz_fb.o
我们在zydz_fb.c中来写驱动代码,首先要完成显示区域的变化如何写入到设备,这个虽不是framebuff驱动本身特有的,但其作为基本的一环,必须先实现。原系统平台的相关驱动可以借鉴。原来的驱动代码是先定位到lcd显示缓冲的行首,然后一个字节一个字节的写,直到写完一行的数据,其中位置光标自动右移。但在我这,一行点位根本显示不全,我们用的是RA9935A,我怀疑它在控制自动移位方面可能存在问题。后来我改变写数据的方式:自己控制位置光标,然后写一个字节!这样能正常显示了。
IMD-310/5F
Modicon PC-E984-385 Programmable Controller
(20) New Square D 50005-120-02 OEM Finger Tip Contacts
Schneider Modicon 172-PNN-210-22 Option Adapter
RVSI 002-CM4000 Machine Vision Camera
Bailey Controls IPECB11 Infi 90 Power Entry-Cir.Brkr.
Olofsson 12-12003 Spindle Control Board
New RTP 021-0211-002 14-Bit ADC Analog Board
NEW Westinghouse 730A36G01 5QSE5 Recorder Board
FANUC A16B-1210-0481/02A Control Board
(8) NEW Allen-Bradley 700-CRT6 Contact Cartridges
UTICOR Model 58263 PMD Remote Operator Station
(4) NEW CUTLER-HAMMER E57LAL12T111SD PROX. SENSORS
(4) NEW CUTLER-HAMMER E57MAL18A2EB1 PROX. SENSORS
NEW BK MIKRO BK5110 Tool Monitoring Sensor
AEG Modicon PC-M984-230 Micro 984 Processor Module
Allen-Bradley 121584 Control Logic Drive Board
Honeywell 51305072-400 CLCN I/O Control Board
GE Drive 193X265AAG04 Logic Relay Module
NEW SICK C400 MICRO C41S-0701AA300 TRANSMITTER
NEW Modicon AS-M480-004 Memory Module
NEW FLUKE 9000A-8048 INTERFACE POD UNIT
联系人 | 杨工销售 |
---|