arm9_LCD
Posted lzd626
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arm9_LCD相关的知识,希望对你有一定的参考价值。
其实LCD主要用途就是用来显示数据,那么数据的来源和其传输方式就是主要关注点了;做过一个项目是显示红外热像图,通过pico384获取原始图像数据,它会将数据通过一条串行线输出出来,然后通过串行转并行芯片把数据以14路并行GPIF设置好的时序传给cypress,此芯片再通过usb接口传给上位机显示,这只是大概的流程,中间还有很多细节,也不必详述;自定义的GPIF接口时序就是按照pico输出的时序,下图为其时序图:
下图为lcd的 时序图与pico的大同小异:
其他的也就是lcd控制器的描像素点的操作了,具体情况具体看,下面看一下Makefile:
CC = arm-linux-gcc LD = arm-linux-ld AR = arm-linux-ar #将多个可重定位的目标模块归档为一个函数库文件 OBJCOPY = arm-linux-objcopy OBJDUMP = arm-linux-objdump INCLUDEDIR := $(shell pwd)/include #shell pwd代表在shell输入pwd命令中取得的路径 CFLAGS := -Wall -O2 #选项可以打印出编译时所有的错误或者警告信息。这个选项不该被遗忘 CPPFLAGS := -nostdinc -I$(INCLUDEDIR) #不要搜索标准系统头文件目录,仅搜索-I指定的路径。 export CC LD AR OBJCOPY OBJDUMP INCLUDEDIR CFLAGS CPPFLAGS #导出变量让子Makefile可以使用,同级不能使用 objs := head.o init.o nand.o interrupt.o serial.o lcddrv.o framebuffer.o lcdlib.o main.o lib/libc.a lcd.bin: $(objs) $LD -Tlcd.lds -o lcd_elf $^ $OBJCOPY -O binary -S lcd_elf $@ $OBJDUMP -D -m arm lcd_elf > lcd.dis .PHONY : lib/libc.a lib/libc.a: cd lib; make; cd .. %.o:%.c $CC $(CPPFLAGS) $(CFLAGS) -c -o $@ $< %.o:%.S $CC $(CPPFLAGS) $(CFLAGS) -c -o $@ $< clean: make clean -C lib rm -f lcd.bin lcd_elf lcd.dis *.o
objs := div64.o lib1funcs.o ctype.o muldi3.o printf.o string.o vsprintf.o libc.a: $(objs) $AR -r -o $@ $^ #库中加入.o文件 %.o:%.c $CC $(CPPFLAGS) $(CFLAGS) -c -o $@ $< %.o:%.S $CC $(CPPFLAGS) $(CFLAGS) -c -o $@ $< clean: rm -f libc.a *.o
.lds
SECTIONS . = 0x00000000; .init : AT(0) head.o init.o nand.o . = 0x30000000; .text : AT(4096) *(.text) .rodata ALIGN(4) : AT((LOADADDR(.text)+SIZEOF(.text)+3)&~(0x03)) *(.rodata*) .data ALIGN(4) : AT((LOADADDR(.rodata)+SIZEOF(.rodata)+3)&~(0x03)) *(.data) __bss_start = .; .bss ALIGN(4) : *(.bss) *(COMMON) __bss_end = .;
以上是关于arm9_LCD的主要内容,如果未能解决你的问题,请参考以下文章