Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9152934
  • 博文数量: 1727
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19860
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1727)

文章存档

2024年(3)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: Android平台

2013-03-05 17:07:05

近期想在 minigui 上实现触摸屏校准程序。
1. 移植 ts_calibrate 程序代码(里边含有float运算 & mknod 系统调用)为库 libxx.so.
2. 应用调用 libxx.so 的接口实现功能。

应用在校准的后期总是出现 illage instructions 的错误,即错误的指令,后面跟踪出现问题于 mknod, 然后屏蔽掉 mknod,还是出现同样的错误,
发现在 float x += (float)int_val 上。 上网搜有人说使用 -D__GCC_FLOAT_NOT_NEEDED 可以规避这个问题, 我试过了没用。

高了一整天,实在没有办法了,试过了在内核中加入 VFP, 库的编译参数很多方法,无效。

自己写了一个 float 的简单测试 demo, 发现运行正常, why?

后面忽然醒悟, 差别在于  编译的结果是 库/ 是应用程序的问题? ts_calibrate 和测试demo都是 application, 都能正常运行, 而变成 library 就非正常。

把库内的相关代码编译到应用中去,测试果然OK, 包括 mknod 也边的正常了, 不使用 -D__GCC_FLOAT_NOT_NEEDED也正常。

结论:
1.  关于 root权限的系统调用 和 浮点运算都应该放到应用中,不能放在库里。 不清除为什么,后面在考虑问题处在何处。

阅读(3251) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~