历史上的今天
返回首页

历史上的今天

今天是:2024年11月09日(星期六)

正在发生

2021年11月09日 | mini2440一线总线移植tslib1.4

2021-11-09 来源:eefocus

最近在学习中接触到了触摸库tslib,自己试着移植的时候发现网上分为两种方案,一种是使用2440自带AD的方案,另一种是友善的一线总线方案。我的液晶型号是TD35,默认的连接方案是一线总线,所以这里移植的是一线总线方案。


上网搜索的过程中发现网上可用的一线总线tslib并不是1.4版本的,但是编译后使用是没有问题的,抱着试一试的心态决定移植一下1.4版本的tslib到MINI2440,经过实验,成功将tslib的1.4版本移植到了mini2440.


移植主要是将友善提供的one_wire_ts_input.c文件添加到对应位置,修改配置文件就可以了。


下面列出补丁文件


diff -ru tslib/configure.ac tslib1.4_one_wire/configure.ac

--- tslib/configure.ac 2005-03-01 07:44:12.000000000 +0800

+++ tslib1.4_one_wire/configure.ac 2018-01-13 17:56:28.000000000 +0800

@@ -163,6 +163,15 @@

 AC_MSG_RESULT($input_module)

 AM_CONDITIONAL(ENABLE_INPUT_MODULE, test "$input_module" = "yes")

 

+AC_MSG_CHECKING([whether one_wire_ts_input module is requested])

+AC_ARG_ENABLE(one_wire_ts_input,

+ AS_HELP_STRING([--enable-one-wire],

+ [Enable building of one-wire-ts-input raw module (Friendly ARM 1-wire) (default=yes)]),

+ [one_wire_ts_input_module=$enableval],

+ [one_wire_ts_input_module=yes])

+AC_MSG_RESULT($one_wire_ts_input_module)

+AM_CONDITIONAL(ENABLE_ONE_WIRE_TS_INPUT_MODULE, test "$one_wire_ts_input_module" = "yes")

+

 AC_MSG_CHECKING([where to place modules])

 AC_ARG_WITH(plugindir,

         AS_HELP_STRING([--with-plugindir=ARG],

diff -ru tslib/plugins/Makefile.am tslib1.4_one_wire/plugins/Makefile.am

--- tslib/plugins/Makefile.am 2005-03-01 07:44:12.000000000 +0800

+++ tslib1.4_one_wire/plugins/Makefile.am 2018-01-13 19:17:18.000000000 +0800

@@ -91,6 +91,12 @@

 H2200_LINEAR_MODULE =

 endif

 

+if ENABLE_ONE_WIRE_TS_INPUT_MODULE

+ONE_WIRE_TS_INPUT_MODULE = one_wire_ts_input.la

+else

+ONE_WIRE_TS_INPUT_MODULE =

+endif

+

 pluginexec_LTLIBRARIES =

  $(LINEAR_MODULE)

  $(DEJITTER_MODULE)

@@ -103,7 +109,8 @@

  $(MK712_MODULE)

  $(ARCTIC2_MODULE)

  $(H2200_LINEAR_MODULE)

- $(INPUT_MODULE)

+ $(INPUT_MODULE)

+ $(ONE_WIRE_TS_INPUT_MODULE)

   

 variance_la_SOURCES = variance.c

 variance_la_LDFLAGS = -module $(LTVSN)

@@ -141,3 +148,6 @@

 

 linear_h2200_la_SOURCES = linear-h2200.c

 linear_h2200_la_LDFLAGS = -module $(LTVSN)

+

+one_wire_ts_input_la_SOURCES = one_wire_ts_input-raw.c

+one_wire_ts_input_la_LDFLAGS = -module $(LTVSN)

diff -ru tslib/plugins/one_wire_ts_input-raw.c tslib1.4_one_wire/plugins/one_wire_ts_input-raw.c

--- tslib/plugins/one_wire_ts_input-raw.c 2018-01-13 20:06:19.077456660 +0800

+++ tslib1.4_one_wire/plugins/one_wire_ts_input-raw.c 2018-01-13 19:46:41.000000000 +0800

@@ -0,0 +1,66 @@

+#include

+#include

+#include

+#include

+#include

+#include

+#include

+#include

+#include

+#include

+#include

+#include

+#include

+

+

+#include "tslib-private.h"

+

+static int misc_read(struct tslib_module_info *inf, struct ts_sample *samp, int nr)

+{

+ struct tsdev *ts = inf->dev;

+

+ int ret;

+ unsigned ts_status;

+ ret = read(ts->fd, &ts_status, sizeof ts_status);

+ if (ret < 0) {

+ return 0;

+ }

+ if (ret == 0) {

+ return 0;

+ }

+

+ samp->x = ((ts_status) >> 16) & 0x7FFF;

+ samp->y = ts_status & 0x7FFF;

+ samp->pressure = ts_status >> 31;

+ gettimeofday(&samp->tv,NULL);

+ nr = nr;

+

+ return 1;

+}

+static int ts_fini(struct tslib_module_info *inf)

+{

+        free(inf);

+        return 0;

+}

+

+static const struct tslib_ops misc_ops =

+{

+ .read = misc_read,

+        .fini   = ts_fini,

+};

+

+TSAPI struct tslib_module_info *mod_init(struct tsdev *dev, const char *params)

+{

+ struct tslib_module_info *m;

+

+ m = malloc(sizeof(struct tslib_module_info));

+ if (m == NULL)

+ return NULL;

+

+ m->ops = &misc_ops;

+ return m;

+}

+

+#ifndef TSLIB_STATIC_FRIENDLYARM_TS_MODULE

+TSLIB_MODULE_INIT(mod_init);

+#endif

将上述代码复制后命名为 patch_1wire_tslib1.4


打补丁编译步骤如下:

tar xzvf tslib-1.4.tar.gz


patch -p0 cd tslib


./autogen.sh


./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ -prefix=/work/install_tslib(这里是设置最后的安装位置,可以自定义)

make


make install


执行到这里就可以在上文的安装文件夹中看到编译好的tslib库了。


然后修改该文件夹下 etc 里的 ts.conf 文件,在最开始加上 module_raw one_wire_ts_input


然后修改开发板 /etc/profile 添加环境变量,下面是我的环境变量,对应友善的一线总线驱动


export T_ROOT=/usr/local/tslib

export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/touchscreen-1wire

export TSLIB_PLUGINDIR=$T_ROOT/lib/ts

export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

export POINTERCAL_FILE=/etc/pointercal

export TSLIB_CALIBFILE=/etc/pointercal


最后将上述的安装文件夹里的内容整个复制到开发板的 /usr/local/tslib/目录下,进入子目录 bin ,就可以进行触摸屏校准和测试了。

推荐阅读

史海拾趣

Anderson Power Products公司的发展小趣事

Anderson Power Products(APP)是一家专注于电源连接器和配件的制造商,以下是该公司发展的相关故事:

  1. 公司成立与初期阶段:Anderson Power Products成立于1936年,总部位于美国华盛顿州斯特林。最初,公司主要从事电源连接器的制造和销售。创始人是William M. Anderson和Harold J. McKenzie,他们致力于提供高质量、可靠的连接器产品,以满足不断增长的市场需求。

  2. 技术创新与产品发展:随着市场的不断变化和技术的进步,Anderson Power Products不断进行技术创新和产品开发。公司推出了一系列新型的电源连接器和配件产品,包括Powerpole®连接器、SB®连接器等,这些产品具有高功率密度、高可靠性和易用性的特点,得到了广大客户的青睐。

  3. 客户合作与市场拓展:Anderson Power Products与全球各个行业的客户建立了长期稳定的合作关系。公司的客户群涵盖了汽车、航空航天、工业、能源等多个领域。通过与客户的紧密合作,Anderson Power Products不断拓展市场份额,提升品牌知名度,成为电源连接器领域的领先供应商之一。

  4. 全球布局与生产基地:为了更好地服务全球客户,Anderson Power Products在全球建立了多个生产基地和销售办事处。除了在美国的总部外,公司还在欧洲、亚洲等地区设立了生产工厂和销售办事处,以满足不同地区客户的需求。这些生产基地拥有先进的设备和技术,能够为客户提供高质量的连接器产品。

  5. 持续创新与未来展望:作为一家专注于电源连接器的公司,Anderson Power Products将继续致力于技术创新和产品发展。公司将不断推出适应市场需求的新产品,提升生产效率和产品质量,以满足客户不断变化的需求。同时,Anderson Power Products也将继续关注行业的发展趋势和技术变革,不断调整战略,保持在行业内的竞争优势。

DUCATI公司的发展小趣事

在电子行业中,DUCATI公司(杜卡迪摩托控股公司)的发展历程尤为独特,它从一个无线电通信技术的研究和生产公司,逐渐发展成为享誉全球的摩托车生产商。以下是五个与DUCATI公司电子行业起源及其后来摩托车业务发展起来的相关故事:

  1. 无线电通信技术的奠基

1926年,DUCATI家族工程师Antonio Cavalieri Ducati与意大利波隆那地区的绅士合作,成立了杜卡迪无线电器材制造公司。公司专注于无线电通信技术的研究和生产,为后来的发展奠定了坚实的基础。尽管当时并未涉足摩托车行业,但这一技术积累为公司带来了重要的经验和资金储备。

  1. 战火中的坚持与转型

第二次世界大战期间,杜卡迪的工厂不幸毁于战火。然而,在战后的废墟中,公司看到了对车辆需求的逐渐增加。不久后,杜卡迪开始踏入其他工业领域,为后来的摩托车业务探索了新的道路。这种逆境中求生存、转型谋发展的精神,是杜卡迪文化中不可或缺的一部分。

  1. Cucciolo引擎的突破

1946年,杜卡迪推出了企业史上的第一具单汽缸引擎Cucciolo。这款引擎由当时的意大利工业振兴协会管理,设计者为都灵的SIATA公司。虽然最初只是装置在脚踏车上的小型引擎,但这一突破性的技术为杜卡迪进入机车制造领域打开了大门。Cucciolo引擎的成功研发,为杜卡迪摩托车部门的成立奠定了基础。

  1. Cruiser机车的问世

1952年,杜卡迪推出了第一部配备电动启动马达和自动变速系统、排气量175cc的机车Cruiser。这款机车标志着杜卡迪正式成为机车制造厂,并为其在摩托车行业的地位奠定了基础。Cruiser的成功问世,进一步巩固了杜卡迪在摩托车市场的地位。

  1. Monster与916的辉煌

进入90年代后,杜卡迪在摩托车设计和技术上取得了重大突破。1993年,阿根廷设计师Miguel Galluzzi设计的Monster为杜卡迪在财务危机的愁云惨雾中找到了曙光。而1994年推出的916更是杜卡迪划时代的革命性作品,这款车型获得了世界经典名车的殊荣。Monster和916的成功设计不仅展现了杜卡迪在摩托车设计上的独特魅力,也为其在全球市场上赢得了广泛的赞誉。

以上五个故事展示了DUCATI公司在电子行业中的起源以及后来摩托车业务的发展过程。这些故事不仅体现了公司的创新精神和技术实力,也展现了其在逆境中求生存、转型谋发展的坚定信念。

Astro Industries Inc公司的发展小趣事

随着产品的热销,Astro Industries Inc开始积极寻求市场拓展的机会。公司加强了与各大销售渠道的合作,通过线上线下相结合的方式,将产品推向更广阔的市场。同时,公司也注重品牌建设,通过统一的品牌形象和宣传策略,提升了品牌知名度和美誉度。这些举措使得Astro Industries Inc在电子行业中逐渐崭露头角。

AXTAL公司的发展小趣事

创新是AXTAL公司不断发展的动力源泉。公司注重研发投入,持续推出具有竞争力的新产品和技术。同时,AXTAL还积极与高校、科研机构等合作,共同开展前沿技术的研发和应用。这些创新举措不仅提升了公司的技术实力和市场竞争力,也为整个电子行业的发展注入了新的活力。

这五个故事只是AXTAL公司发展起来历程中的一部分。它们从不同的角度展示了公司在创立、技术与品质追求、全球布局、应对市场挑战以及持续创新等方面所取得的成就和进步。未来,随着电子行业的不断发展和变革,相信AXTAL公司将继续保持其领先地位,为行业的进步和发展做出更大的贡献。

GC Electronics公司的发展小趣事
传感器本身出现故障,如损坏、老化或灵敏度降低等,可能导致误报。
旌芯半导体(GN)公司的发展小趣事
定期检查传感器的工作状态,确保其能够准确监测水量或水温。

问答坊 | AI 解惑

【2009年电子设计大赛题目分析三】——多图

电子竞赛中的30m的频率通讯电路图出来了 https://bbs.eeworld.com.cn/thread-85045-1-1.html 电子大赛之最大功率跟踪 https://bbs.eeworld.com.cn/thread-85046-1-1.html 大赛B题 自制声源 https://bbs.eeworld.com.cn/viewthread.php?tid=85080 ...…

查看全部问答>

教你如何学习嵌入式系统(基于ARM平台)(转)

一、嵌入式系统的概念          着重理解“嵌入”的概念    主要从三个方面上来理解。      1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构 ...…

查看全部问答>

WIFI安全性问题

wifi在连接路由器时,wifi会搜索出周围存在无线路由器,对于其中一台无线路由器,如果我们不输入密码,能不能连上。我在做wifi测试的时候,只指定用户名,而没有输入密码或者输入错误的密码能连接上了无线路由器,请问产生这个现象的原因是不是wifi ...…

查看全部问答>

中*美*爱*梯*科*技, 9月10日新班开课, 免费试听!

中*美*爱*梯*科*技, .NET外企软件工程师班将于2007年9月10日开课, 开课第一周免费试听, 欢迎大家踊跃报名参加!   中*美*爱*梯*科*技向学员郑重承诺: 百分之百保证就业, 月薪3000——8000, 就不了业者退还全部学费!    ...…

查看全部问答>

Code Composer Studio v4.2 for MSP430(tm) User’s Guide

[ 本帖最后由 wstt 于 2011-9-14 13:34 编辑 ]…

查看全部问答>

单片机通电之后继电器就一直响。

在淘宝上买的铁牛单片机,本来之前用还好好的,后来不知道烧了一个什么程序,导致每次通电之后继电器都会响一声,同时继电器下面那个绿灯也闪了一下,就一下。。。。烧录程序过程中,继电器就一直响,绿灯也一直闪烁。求高手们解答这是什么问题。? ...…

查看全部问答>

基于无线的定位算法研究资料大全

最近由于在研究无线定位算法,所以上传一些资料和大伙共享下,这都是我从各个渠道汇集而来的,希望对大家有用,也希望下载过的朋友留下个脚印。 [ 本帖最后由 wateras1 于 2012-5-3 22:01 编辑 ]…

查看全部问答>

MXCHIP+跑第一个Wifi例程的注意事项

第一个例程我昨天晚上就跑通了。今天看到网友说得好像很不容易,我把我的方法及遇到的问题说下。为以后扫清道路。 首先只要严格按照用户手册去做就应该没有问题。在这里再传下手册。同时自己也MARK一下。 我首先是下bootlaod: 手册上说很明确了 ...…

查看全部问答>

求教用msp430g2553 做一个音乐流水灯

想用PWM做一个蜂鸣器播放音乐加流水灯一起,做一个音乐流水灯,那个大神有成熟的程序吗,帮忙分享一下…

查看全部问答>