[問題]不知道是不是dlsym的問題...
其實我上層是Android系統 要打通rfid
但我感覺我是卡在linux的部分 所以想說在這發問一下
在framework的最底層(Native) 我build了一包.so
在JNI層會利用dlopen dlsym去呼叫.so裡面的API~
但有的可以用有的不能用....
我歸納一下:
例如查詢.so版本號的API就可以用
開啟UART /dev/ttyO3 port的API 要先執行chmod 777 才可以開啟成功
對硬體做讀寫的API就會回傳失敗~
但這包code我有build成執行檔在console環境下 (root權限) 是可以執行的(讀寫OK)
而安卓framework我記得他們的權限都是system 有懷疑是不是owner的問題..
所以想請教前輩 有沒有遇過console 執行bin檔OK 但上層call .so裡的API卻失敗的情形
該朝哪個方向解決比較好?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.21.170.157
※ 編輯: onlywig 來自: 211.21.170.157 (06/28 15:41)
※ 編輯: onlywig 來自: 211.21.170.157 (06/28 15:42)
推
06/29 01:41, , 1F
06/29 01:41, 1F
→
06/29 14:28, , 2F
06/29 14:28, 2F
推
06/30 16:10, , 3F
06/30 16:10, 3F
例如
char* get_lib_version();
int open_rfid_port(char *path);
這種的就可以用
int rfid_find_tags(
found_tag_callback found_tag_cb,
int count,
int timeout_ms,
access_report_callback access_report_cb);
這種就不行...我帶的參數跟我在bin的執行檔是一樣的
不知道為啥放在HAL就不行
※ 編輯: onlywig 來自: 61.220.220.235 (07/01 09:16)
→
07/03 11:02, , 4F
07/03 11:02, 4F
謎底揭曉 是我用安卓的"bionic" (C的函式庫)去build出來的執行檔
就會有問題了 查了一下安卓的C函式庫並不是標準規範
但卻又build的過 不知道該怎辦..我現在懷疑只是UART沒有通而已
※ 編輯: onlywig 來自: 122.146.76.147 (07/03 18:02)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章