社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 3109|回复: 10

[求助] fc12交叉编译工具的库路径求助!!!!

[复制链接]

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-8-14 17:15:27 | 显示全部楼层 |阅读模式
求救 老大:


  我用的官网提供的建立好的fc12开发环境,现在在移植freetype,我把编译好的freetype头文件和库文件要安装到哪个目录呢,试了两个小时了,也没试对,fc12自带的交叉编译目录好乱啊,我把头文件放对路径了,现在freetype的库文件试了n个目录,编译程序时都提示找不到库文件,请问,我该把第三方软件的库放哪个目录来编译应用程序,后面还会弄libjpeg,还有tslib,还有其它的第三方开源软件,急啊,唉,浪费了几个小时了。


回复

使用道具 举报

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2014-8-14 17:20:19 | 显示全部楼层
可能存放第三方.so的路径都试过了,还是不行啊!


回复

使用道具 举报

584

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2014-8-14 18:12:19 | 显示全部楼层
本帖最后由 spacexplorer 于 2014-8-14 18:15 编辑

编译器里已经包含了libjpeg,libpng,libts等常用的开源库。编译器里库的存放位置是:/opt/toolchains/arm-jyxtec-linux-gnueabi/arm-jyxtec-linux-gnueabi/sysroot/lib
这个是默认位置,怎么会乱呢?

libfreetype我们没有放进去,你要把.so,还有.la,.a等文件都要放进去,还要把相应的头文件也要放进去才行。
其实,放不放在里边都没关系的,编译代码的时候,加一个CFLAGS=+L,L后边跟一个你编译好的库路径就行了。

点评

已解决,谢老大,基于Helper2416的电子书项目已完成,稍后贴出,接下来是数码相框,MP3播放器,,现在有个问题: 编写触摸屏应用程序时,执行编好的程序时出现下面提示: XXXXX(省略若干行。。。。) tslib: Sel  详情 回复 发表于 2014-8-15 17:22
My dreams will go on...
http://www.jyxtec.com


回复

使用道具 举报

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2014-8-15 17:22:54 | 显示全部楼层
本帖最后由 fwjieok 于 2014-8-15 17:25 编辑
spacexplorer 发表于 2014-8-14 18:12
编译器里已经包含了libjpeg,libpng,libts等常用的开源库。编译器里库的存放位置是:/opt/toolchains/arm- ...

已解决,谢老大,基于Helper2416的电子书项目已完成,稍后贴出,接下来是数码相框,MP3播放器,,现在有个问题:

编写触摸屏应用程序时,执行编好的程序时出现下面提示:
XXXXX(省略若干行。。。。)
tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
我在网上查看说是: 内核和文件系统编译时加入触摸屏支持,是这样的吗?  我make menuconfig查看发现在内核配置中,这一项如下 :
   【*】Touchscreens  --->                 

前面是*号,这样应该是编译进内核了吧,我进入子止录发现没有一项选 中,唉不知 是不是这个问题,请老大回答一下,我的应用程序代码打开触摸屏部分在下面。                       


同样的应用程序我在我的另一块i.mx283上执行正常,但是到Helper416上就不行了,tslib环境变量是配套的,我的另一块板是i.mx283。触摸屏设备是/dev/input/ts0,在Helper2416上应该 是/dev/input/event0。

  1. #include <tslib.h>

  2. struct tsdev *ts;                       // 定义一个TS设备

  3. int touchscreen_open()               // 打开TS
  4. {
  5.         char *tsdevice = NULL;
  6.        
  7.     ts = ts_open("/dev/input/event0", 0);      // 0表示阻塞读取

  8.         if (!ts)
  9.         {
  10.                 printf("ts_open error \n");
  11.                 exit(1);
  12.         }

  13.         if (ts_config(ts))
  14.         {
  15.                 printf("ts_config error \n");
  16.                 exit(1);
  17.         }
  18. }
复制代码
  1. while(1)
  2.         {

  3.                 res = ts_read(ts, &tSamp,1 );          // 阻塞读取
  4.                 if(res < 0)
  5.                 {
  6.                         break;
  7.                 }
  8.                
  9.                 if(tSamp.pressure > 0)
  10.                 {
  11.                         if(flag)
  12.                                 lcd_draw_line(x,y,tSamp.x,tSamp.y,RED);
  13.                         x = tSamp.x;
  14.                         y = tSamp.y;
  15.                         flag = 1;
  16.                 }
  17.                 else
  18.                 {
  19.                         flag = 0;
  20.                 }
  21.                
  22.                 //printf("x = %d   y = %d\n",tSamp.x,tSamp.y);               
  23.     }
复制代码

点评

补充个问题,Helper2416的内存起始地址到底是多少? 0XC000 0000 ? 我烧写UBOOT和zImage时都没有坏块,烧写文件系统时,坏块太多了,吓我一跳,不知是不是地址给弄错了,我是按手山上给出的地址来的。。。。。  详情 回复 发表于 2014-8-15 17:28


回复

使用道具 举报

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2014-8-15 17:28:06 | 显示全部楼层
fwjieok 发表于 2014-8-15 17:22
已解决,谢老大,基于Helper2416的电子书项目已完成,稍后贴出,接下来是数码相框,MP3播放器,,现在有 ...

补充个问题,Helper2416的内存起始地址到底是多少? 0XC000 0000   ?   我烧写UBOOT和zImage时都没有坏块,烧写文件系统时,坏块太多了,吓我一跳,不知是不是地址给弄错了,我是按手山上给出的地址来的。。。。。


回复

使用道具 举报

584

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2014-8-15 20:40:57 | 显示全部楼层
本帖最后由 spacexplorer 于 2014-8-15 20:42 编辑

感动了!想当年我们成立君益兴就是为了做电子项目的!你是高手!

如果用我们的文件系统,你可以看一下/qtenv或者/bin/qtopia里的配置,对应的 event设备可能是event1,或者你看一下每个event设备里的name,就能找到对应的touchdev。
HELPER2416的启努内存是0x30000000,在UBOOT里,有映射到0xC0000000,烧写文件系统有坏块,可能是因为你制作文件系统镜像有问题,一定要用我提供的制作工具来制作,还有,要在uboot里烧,在用户态烧可能有问题,这个我不确定。
My dreams will go on...
http://www.jyxtec.com


回复

使用道具 举报

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2014-8-16 00:10:35 | 显示全部楼层
OK,非常感谢,查看/qtenv得知是event1,另外,tslib的配置文件ts.conf 把它从/usr/local/etc/下面  移到了/etc/目录下,这样用我以前的环境变量设备就OK了,现在电子书支持触屏翻页和终端输入控制,明天拍个视频,也展示下这两周来的学习成果,还有几个疑问:

1. tslib库使用的那些环境变量可以放在开机自动启动的配置文件中吗?应该是哪个文件?
2. uboot映射 内存的原理,,,,,可以提供些关键字资料吗,我查看一下,这个不是太懂,,,我说怎么看资料地址是30000000,而手册上说是c0000000。
3. 我从nand启动时,uboot启动后,就是大块大块的坏块打印信息,大约打印了5秒,,,,,,然后才出现解压内核的打印信息,最终进入文件系统,难道我的板子坏块这么多???不应该啊,擦写次数不是10万次吗,我也没擦写几次,这么坏块。。。。。


回复

使用道具 举报

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2014-8-16 00:17:32 | 显示全部楼层
再补充个问题,Helper2416各个外设的驱动源码在哪里呢?我要在应用程序中读入按键功能,要不我就自已写个按键的驱动吧,,,


回复

使用道具 举报

584

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2014-8-16 11:19:37 | 显示全部楼层
1、tslib的配置信息和正要启动的程序文件放在同一个脚本里,放在你正在启动的程序文件之前就行。只有放在被执行文件之前才能生效,当然,你也可以单独做一个脚本,在执行自启动程序里,先source一下这个脚本就行,注意:一定是source,而不是./;
2、UBOOT里的映射没什么原因,纯粹是程序设计成这样的,主要的原理还是要看MMU,地址是通过MMU映射的;
3、如果发现了大量的坏块,则有可能是写数据的时候操作出错了,你可以用
    nand scrub  [offset]  [size]
    来清掉不正确的坏块信息,操作方法与nand erase一样,只是会清除坏块信息
4、外设驱动源码比较多,一般在driver下边,还有一些在arch/arm/下边,这下边有三个目录:mach-s3c2416,plat-s3c24xx,plat-samsung,按键驱动在:drivers/input/keyboard/helper2416_keys.c

点评

非常感谢,现在我已弄懂了helper2416的按键,就是/dev/input/event0嘛,我能正确读出来按键的值啦 ,但是我看代码发现,你是弄了个内核线程来查询按键的IO口状态,如果状态改变,就报告给Input子系统,那我现在有个  详情 回复 发表于 2014-8-16 13:32
My dreams will go on...
http://www.jyxtec.com


回复

使用道具 举报

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2014-8-16 13:32:15 | 显示全部楼层
spacexplorer 发表于 2014-8-16 11:19
1、tslib的配置信息和正要启动的程序文件放在同一个脚本里,放在你正在启动的程序文件之前就行。只有放在被 ...

非常感谢,现在我已弄懂了helper2416的按键,就是/dev/input/event0嘛,我能正确读出来按键的值啦 ,但是我看代码发现,你是弄了个内核线程来查询按键的IO口状态,如果状态改变,就报告给Input子系统,那我现在有个疑问,是这样的:

  我使用轮询读取的方法,每隔500ms读取一次触摸屏或串口终端,这样的话,我一直按着触摸屏,那它就达到了连按的效果,电子书会不停的翻页,现在的按键却不是这样,如果我一直按着按键不丢,则只会检测到一次按下,而达不到连续按的效果,老大应该明白我的意思了,,,,吧,说的不清,晚上拍张图和视频上传演示,,,原因是不是因为驱动程序只在按键的状态变化时才会上报事件,而如果按着不丢,驱动没有检测到按键IO口的状态变化,所以不会上报事件啊,也就是说,驱动程序只检测到一次按键,只上报一次,所以在应用程序中也只读取到一次按键按下。。。。???


求老大解释,,,,,,。

还有个问题,我尝试着编译内核 ,按手册上来的,是3.2的,编译过程中出现了好多选择项,你必须输入回册才能继续编译,这是为何?

点评

一般说来,程序有一个机制,就是上报连续按键,我不知道应该放在内核里还是应该放在应用程序里。我目前做的就是反回按下,或者弹起的状态,没有做连续按键。  详情 回复 发表于 2014-8-16 15:03


回复

使用道具 举报

584

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2014-8-16 15:03:34 | 显示全部楼层
本帖最后由 spacexplorer 于 2014-8-16 15:05 编辑
fwjieok 发表于 2014-8-16 13:32
非常感谢,现在我已弄懂了helper2416的按键,就是/dev/input/event0嘛,我能正确读出来按键的值啦 ,但是 ...

一般说来,程序有一个机制,就是上报连续按键,我不知道应该放在内核里还是应该放在应用程序里。我目前做的就是反回按下,或者弹起的状态,没有做连续按键。
编译的时候,直接用 .config好了,不要再用helper2416这个配置文件了,还有命令行是这样的:
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
不是单纯的:
make menuconfig
My dreams will go on...
http://www.jyxtec.com


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-11-18 20:02 , Processed in 0.454968 second(s), 17 queries , Redis On.

快速回复 返回顶部 返回列表