龙芯9341屏驱动开发过程(GUI、增加tty 裸奔版)
http://www.openloongson.org/forum.php?mod=viewthread&tid=141&extra=
为了让大家更好的学习这个屏的驱动,这两天对屏幕以及GUI驱动做了一些优化 继续更新20161230 (扩展板)代码在这 隐藏下,给论坛增加下人气 游客,如果您要查看本帖隐藏内容请回复 更新内容: 1、采用platform驱动框架,优化驱动调用结构和层次 2、优化代码,将编译过程中所有的警告信息全部排除 3、优化MCU屏的驱动代码,减少不必要函数中转调用,尤其是关乎写屏的函数代码,尽可能的提高屏的写入效率 4、去除大部分没必要的调试代码,让代码看起来更好看些 5、删除没用的测试函数 注意:测试过程参考下面的过程,相关文件路径设置没变 继续更新20160714代码在这:http://pan.baidu.com/s/1skRuFhj 更新内容(续历史内容): 1、刚有了1C的官方扩展板,将代码更新为扩展板适用版本(目前官方扩展板的管脚对MCU屏效率不是最优的,扩展板的管脚不同于我历史杜邦线管脚,扩展板管脚对MCU屏的效率比较低,因为它拆开了屏数据接口,写屏幕时需要拆分整合数据,降低了屏的写入效率) 2、更新了一个tty驱动(tty_lcd),可以脱离串口单独运行了(调试好后可以关闭串口设备),用户程序依附在tty_lcd的shell壳下,串口依然有console输出(没有问题,可以换,但是没必要) 3、在tty_lcd驱动之下实现了当前tty_lcd shell壳下的终端,也就是说,在这个终端模拟下,可以脱离串口调试运行,触摸键盘效率低下,最好不要使用vi、more、top等指令,触摸模拟键盘并没有实现相关中断切换(如ctrl+c)指令,改进键盘可以实现,假如用了就退出重新进入模拟终端吧 4、修改查看文本最好使用已经实现的电子图书和记事本应用(^_^) 调试步骤: 直接make 、insmod调试需要做下准备(按步骤来哦,说的罗嗦点,懂的自然懂): 1、在/home下新建lcd9341目录并将down下的SYSTEM整个复制到lcd9341下,即必须有相关图标文件/home/lcd9341/SYSTEM 的文件 2、将make得到的lcd9341_dri.ko内核文件下载至/home/lcd9341下 3、将用户程序编译(mipsel-linux-gcc -o lcdtest lcdtest.c)得到的lcdtest用户程序下载到/home/lcd9341下 4、增加/etc/rc.d/rc.sysinit内容 底行增加 ifconfig eth0 192.168.11.70(你的局域网ip) 5、增加/etc/rc.d/rc.sysinit内容 继续增加 /usr/sbin/telnetd (说明:4、5两部是为了防止调试失败的时候,可以打开telnet补救) 6、增加/etc/rc.d/rc.sysinit内容 继续增加 /sbin/insmod /home/lcd9341/lcd9341_dri.ko(说明:加载本例的驱动) 7、增加/etc/rc.d/rc.sysinit内容 继续增加 /home/lcd9341/lcdtest &(说明:当前壳下运行用户程序) 8、重要,增加/etc/initab内容,添加行 tty_lcd0::respawn:-/bin/sh (说明:内核启动后会自动打开这条指令的/dev/tty_lcd0设备,建立内核和本例子tty驱动的联系) 9、reboot吧 图片若干 20160702内容: 直接make运行的需要做如下准备工作: 记录: 历史内容:更新一处管脚说明:屏RST需要接在板子RESET脚 伪驱动源码里面有个yizhihanshu.c的文件,这里的代码都是以频繁读写/sys/class/gipo/里面的文件来驱动显示屏,效率极其低下,可想而知,当你向屏的数据接口写16位数据的时候,你要读写16次文件(还有N次的命令使能端口读写),而你要刷新一个屏幕时,拿65535色的屏来说,你需要读写16X65535次文件,显而易见需要极其长的时间,事实也是当刷新一次屏基本上需要半个小时 之前研究了 龙芯1B开发板-点灯大法 http://www.openloongson.org/foru ... d=20&extra=page%3D1 于是尝试自己动手写个驱动,从内核的层面驱动(上面都是废话) lcd9341_device.c文件主要是一些直接和内核打交道的框架函数,关于 file_operations这里我研究了1天,主要是一些接口的配置,程式化的,不必深究,.open = lcd_open,初始化驱动文件,unlocked_ioctl=lcd_ioctl操作命令,.write = lcd_write,应用程序向驱动传递数据,其他内容源码注释较为清楚了 lcd9341_fn.c文件是驱动的具体实现,以及移植了一些函数原型,之所以说是移植,需要gpio_out_mod(void)输出模式 gpio_in_mod(void)输入模式, read_data读数据 write_data写数据等一些必要的函数的支持,主要是为了配合ILI93xx.c(这个文件来自正点原子STM32驱动) 我在makefile这里浪费了很多时间,虽然makefile文件内容很少。 20151025新增部分: 首先将lcd9341文件夹复制进源码drivers/下 1、修改drivers/目录内Kconfig文件 大神请无视,权且当作学习笔记,我将乐此不疲O(∩_∩)O~~~~ |
3.jpg (1.91 MB, 下载次数: 2)
增加中文字库
2.png (236.87 KB, 下载次数: 1)
附:龙芯Intellij IDEA开发Spring web应用视频
http://tieba.baidu.com/p/5975179608
龙芯9341屏驱动开发过程(GUI、增加tty 裸奔版)相关推荐
- 【龙芯1B例程】:串口中断实验
龙芯(只供学习,不可商用) 文章目录 前言 一.串口中断是什么? 二.开发步骤 1.龙芯1B串口驱动函数(内置) 2.串口中断示例代码 3.代码示例图 总结 前言 文章参考官方各类书籍,以及网络知识, ...
- 龙芯发布.NET 6.0.100开发者内测版
龙芯在龙芯开源社区发布了LoongArch64-.NET-SDK-6.0.100开发者内测版的新闻 ,龙芯.NET基于上游社区 版本 适配支持龙芯平台架构.目前支持LoongArch64架构和MIPS ...
- 龙芯.NET正式发布 开源共享与开发者共成长
2020年12月19日,2020中国. NET开发者大会于苏州盛大开幕.本次大会以"开源.共享.创新"为主题,以线下城市苏州为中心,覆盖北京.上海.深圳.广州.长沙.成都.厦门.胶 ...
- 【转贴】龙芯生态产品和解决方案巡展(第二篇)——笔记本电脑
龙芯生态产品和解决方案巡展(第二篇)--笔记本电脑 2019-05-24 11:17 http://www.sohu.com/a/316441945_309387 龙芯携手众多合作伙伴厂商共同开发多套 ...
- 龙芯智龙开发板:驱动步进电机实战入门
本文面向初学者,请多各位高手包涵.我在此特别致谢勤为本先生为我提供的帮助. 步进电机 步进电机就是一种受脉冲控制的电机,步进电机接收到一系列某种调制顺序的脉冲,做出相应的反应,转到相应的角度或者相应的 ...
- 基于龙芯 2K1000 的嵌入式 Linux 系统移植和驱动程序设计(二)
第 3 章 嵌入式软件系统移植 本课题中嵌入式系统正常工作的前提是嵌入式软件系统完整且能正常工作, 以便为之后的软件开发提供一个能够正常工作的平台.引导程序 PMON 需要完成 内核引导,嵌入式 Li ...
- firefox驱动_零适配 + 全兼容!龙芯电脑推出办公外设利旧通用解决方案:运行原生 Windows 驱动程序...
龙芯中科宣布推出创新的办公外设利旧通用解决方案,采用跨指令兼容的二进制翻译(Binary Translation)技术,在龙芯电脑上运行原生的 Windows 驱动程序,具有 "零适配.全兼 ...
- 龙芯1B核心板,内核编译方法:实现usb转串口,即pl2303驱动的模块化安装使用
龙芯1B核心板,内核编译方法,以usb转串口的方法为例 usb转串口的驱动,惯例使用的是pl2303驱动,在龙芯1B中也不例外,龙芯1B中使用的内核版本号是linux3.18,其中本身就带有pl230 ...
- 基于龙芯2K1000平台CL1606AD760-8驱动调试总结
历经两周终于将设计的AD采集板驱动起来,并且读取电流值成功,唯不是一个突破!由硬件设计再到驱动,一步步设计改变:到设备树添加驱动并加载,总结主要分为两方面,一个驱动调试和硬件调试.细节如下: 驱动调试 ...
最新文章
- Eclipse中SVN设置文件为ignore后重新添加至版本控制
- OTS parsing error: invalid version tag woff和ttf文件被Filter拦截
- Java学习_day007:数组与方法
- rocketmq 消费者不能调用其他服务_Spring Cloud Alibaba RocketMQ - 构建异步通信的微服务...
- 【图论】Tree之最小方差树(bzoj 3754)
- 非阻IO与EWOULDBLOCK EAGAIN
- JavaScript中的数学对象Math
- Linux系统的服务器配置minicom接console线调试交换机的步骤
- 运用循环判断语句和列表的购物车程序
- Atitit.每周末总结 于每周一计划日程表 流程表 v8
- html基础 — area(图像的作用区域标记)
- 【NVIDIA】显卡报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver
- 华强盛HQST推出传输速度高达10Gbit/s网络变压器
- 自助装机配置专家点评2
- c++双向列表释放_SAIL-C-R-T4-A1-V0-B1温度控制仪-老友网
- openssl1.1.1下载地址
- 2021-08-23-Nginx安装与部署项目
- 机器学习数学知识(一) 自然数e
- java 线程池超时_线程池中如何控制超时时间?
- 吉林大学数据库系统概念2015年期末试题自做答案