導航:首頁 > 操作系統 > lddandroid

lddandroid

發布時間:2024-08-08 05:10:23

A. 想買一塊ARM板子,初學者,是買ARM9好還是ARM7好 最重要的是資料要全,要細

初學者看你想學什麼系統來決定買什麼板子。
如果是學習工業控制系統或者uC/OS-II實時系統,建議你買ARM7或者Cortex-M3,這兩種的話買三星的S3C44B0X、ATMEL的AT91SAM7S256或者ST公司的STM32的Cortex-M3核的CPU都是可以的,資料都比較全。這些CPU價格便宜,性能比較好,而且工業控制所需的外設一般都齊全。個人推薦STM32。
如果是學習嵌入式linux,建議買ARM9或者ARM11的板子。這方面選擇性不太大,一般ARM9就是三星的S3C2440,ARM11就是S3C6410,ARM9的價格在500左右,ARM11在1000以下。建議買ARM11,最爽的ARM11開發板就是LDD6410了,和宋寶華老師的《Linux設備驅動開發詳解(第二版)》配套,但是也是性價比最低的。其他的什麼飛凌6410、OK6410之類的淘寶上一堆,基本資料都比較重合,也沒啥特質化的。
為何建議你買ARM11?因為它可以支持android操作系統。這個系統現在比較火,手機、平板和其他消費電子目前都在用,就業還不錯。價格的話也在1000之內,預算足夠的話還是一步到位比較好。

如果想學Linux但是預算又不太足的話,可以考慮下國產的SEP4020開發板,東南大學國家集成電路設計中心出的,300-500元左右的ARM720T的CPU,性能還不錯,外設也足夠豐富,關鍵是論壇有一堆老師在做技術支持。論壇地址:http://www.armfans.net/forum-20-1.html。可以在預算不太多的情況下考慮下。

個人建議:先買個SEP4020或者Cortex-M3學著(學習Linux的話就是SEP4020,uC/OS-II的話兩個都行),等入門OK了,再搞ARM11。當然了,預算充足直接ARM11也行。

B. 想學習Linux 驅動,需要什麼知識

首先,接觸linux操作系統,在你的電腦上裝一個linxu操作系統(建議ubuntu,比
較友好),熟悉經常要用的命令,熟悉環境(建議看「鳥哥的linux私房菜」)。
其次,閱讀經典書籍是不可少的,建議先看ldd前四章,大概了解linux驅動的框架
,驅動是做什麼的,該如何寫驅動,那本書上有一些例子,可以在你的電腦上編譯
,執行看看。後面的章節在結合自己的情況而定。
第三,建議閱讀ulk(understanding the linux kernel)所有的內容,了解linux
內核的一些基本知識,在心中建立一個框架,不必完全懂,深入了解就好,以後經
常翻翻,受益無窮!
第四,別著急,這才是你真的進入linux驅動的第一步,花點錢買個開發板吧,然
後了解代碼的編譯,下載,看看板子的datasheet,針對自己感興趣的深入研究。
建議學習流程,led燈控制---tp---i2c匯流排-----lcd-----camera----flash----
wifi/bt等。因為這個裡面牽涉了甚多內核的子系統(input,v4l2,fb等
),所以可能要多話時間看代碼,了解代碼的框架,設計的思想等,只要一步一個
腳印,一定會有所成。
第五,因為現在的移動設備大多數都是android的了,所以你就要看看linux
kernel在android的作用,然後往上看看,看看hal層的代碼,這些在調試中都是需
要的,如果有興趣,更加可以看看framework的代碼了,學習android一些工作機制
,類似於surfaceflinger,audioflinger等等。。
《linux就該這么學》免費提供最新Linux技術教程書籍,為開源技術愛好者努力做
得更多更好

C. so文件是什麼文件

SO文件是Linux下共享庫文件,它的文件格式被稱為ELF文件格式。由於Android操作系統的底層基於Linux系統,所以SO文件可以運行在Android平台上。

Android系統也同樣開放了C/C++介面供開發者開發Native程序。由於基於虛擬機的編程語言JAVA更容易被人反編譯,因此越來越多的應用將其中的核心代碼以C/C++為編程語言,並且以SO文件的形式供上層JAVA代碼調用,以保證安全性。

(3)lddandroid擴展閱讀:

so文件使用方法:

(1)動態庫的編譯。這里有一個頭文件:so_test.h,三個.c文件:test_a.c、test_b.c、test_c.c,我們將這幾個文件編譯成一個動態庫:libtest.so。

命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so不用該標志外部程序無法連接。相當於一個可執行文件。

(2)動態庫的鏈接這里有個程序源文件 test.c 與動態庫 libtest.so 鏈接生成執行文件 test:命令:$ gcc test.c -L. -ltest -o test命令:$ ldd test執行test,可以看到它是如何調用動態庫中的函數的。

參考資料來源:網路—SO(軟體編程)

D. Android下怎麼使用LDD查看依賴庫

Android下沒有ldd可以使用,在進行ndk開發的時候,檢查庫的依賴項特別麻煩。有兩個解決方案:
1、將linux的的ldd移植過去。因為android也是基於linux的,所以將ldd移植過去是完全可能的,google一下;

2、現成的。ndk已經提供了工具,在ubuntu下執行locate readelf,會發現有這些輸出。

E. 學習linux用什麼晶元好2016

首先,無論單片機或者ARM都是屬於嵌入式這個概念。對於ARM來說,移不移植linux要看本身產品需求,ARM7的話,一般不會使用linux。主要看CPU的資源。移植linux系統對於後期功能開發更加方便就是,因為linux幫你封裝了各種API與資源的管理。其實做linux移植不是非常復雜。正常做開發都是二級開發,也就是說CPU廠商提供了基本的SDK包。從單片機轉型做linux,一開始一般做linux驅動吧。做linux驅動,主要是要懂linux框架,上層操作與實際IO介面操作封裝了框架而已,基本都是通過注冊函數,回調實現而已。我也是做單片機到linux的,轉型過來的時候很多都會糾結與上層的操作到實際的寄存器操作,所以先從linux驅動入手在到OS,再到上層應用而已。linux與ucos-ii相比的話,linux集成了功能吧,比如說視頻,音頻,或者UI更完善太多了,ucos-ii無法利用的系統資源吧。一個ARM晶元用來裸奔就是浪費資源,總的來說就是為了更好地利用CPU的資源。不過現在來說android做嵌入式產品將是一個趨勢吧(跟人感覺)好像廢話有點多,linux學習的書籍,LDD、ULK、LDK看看,實際開發的時候學的最開,搞個板子,弄個SDK,直接看源碼,一個禮拜就可以弄個大概吧,如果只是字元設備混雜設備那就更簡單了。。。helloworld哈哈哈

F. Ubuntu 12.04 下安裝 openGL 驅動時,究竟做了什麼事

Ubuntu 下安裝 openGL 驅動的確把我折騰慘了

本人機器是 HP 的使用 i5 的集成顯卡

下載了 intel 的 installer (intel-linux-graphics-installer_1.0.1_amd64.deb ),他們不支持Ubuntu 12.04, 只支持 13.x

找了個 ATI x1300 的老顯卡,官方的驅動(ati-driver-installer-9-3-x86.x86_64.run)只支持了 Ubuntu 8.x 9.x (讓我深感,計算機真是消費品,過時了就用不起來了 )

只好買了一個 Nvidia GT610 顯卡,下載官方的 NVIDIA-Linux-x86_64-331.49.run, 順利裝上了

這驅動做了如下的事情:

1) 把驅動裝到 Kernel 中 ( 我升級了 Kernel ,又了重裝驅動 )

2) 把 /usr/lib/libGL.so 替換為 Nvidia 的(用 ldd 看就知道了),當然要把nvidia 自己的 so 也 到,這幾個目錄

[html] view plain在CODE上查看代碼片派生到我的代碼片
ldd /usr/lib/libGL.so
linux-vdso.so.1 => (0x00007fffe91ff000)
libnvidia-tls.so.331.49 => /usr/lib/tls/libnvidia-tls.so.331.49 (0x00007fa1a58c0000)
libnvidia-glcore.so.331.49 => /usr/lib/libnvidia-glcore.so.331.49 (0x00007fa1a30b1000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa1a2d7b000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fa1a2b6a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa1a27aa000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa1a25a5000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa1a22a9000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fa1a208b000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa1a5e15000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fa1a1e87000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fa1a1c81000)

對於 i386 的支持庫,放在/usr/lib32中
[html] view plain在CODE上查看代碼片派生到我的代碼片
ldd /usr/lib32/libGL.so
linux-gate.so.1 => (0xf7718000)
libnvidia-tls.so.331.49 => /usr/lib32/tls/libnvidia-tls.so.331.49 (0xf75f1000)
libnvidia-glcore.so.331.49 => /usr/lib32/libnvidia-glcore.so.331.49 (0xf53ac000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf5277000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf5265000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf50bb000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf50b6000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf508a000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf5068000)
/lib/ld-linux.so.2 (0xf7719000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf5064000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf505d000)
開發 Android 時使用 , Android 使用 i386是從 /usr/lib/i386-linux-gnu 裝載
所以要把 lib32 中所有文件復制到 /usr/lib/i386-linux-gnu

3) Xorg相關

Xorg是開源的 Xserver 實現

nvidia 要與Xorg集成的庫,放在usr/lib/xorg/moles下面,並改下 /etc/X11 下面的東西

xorg.conf

讓 Xorg載入 so

[html] view plain在CODE上查看代碼片派生到我的代碼片
Section "Mole"
Load "record"
Load "extmod"
Load "dbe"
Load "dri2"
Load "glx"
EndSection

裝載 /usr/lib/xorg/moles/extensions/ 下面的 libglx.so, libdri2.so 等
讓 Xorg 載入 nvida 驅動

[html] view plain在CODE上查看代碼片派生到我的代碼片
Section "Device"
Identifier "Card0"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection

附帶轉帖

Ubuntu通過重新生成/etc/X11/xorg.conf文件來調整解析度
http://blog.chinaunix.net/uid-25909722-id-3019407.html
1. Ctrl+Alt+F1 , sudo service gdm stop
2. sudo Xorg -configure (生成文件 ~/xorg.conf.new)
3. sudo service gdm start
4. mv ~/xorg.conf.new /etc/X11/xorg.conf
5. gtf 1280 1024 60 -x
6. 然後將上一步中gtf命令生成的內容:
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
插入到/etc/X11/xorg.conf中:
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
EndSection
重新啟動X。搞定。

如果不想生成xorg.conf文件,並且只想臨時的調整解析度,那麼可以按照如下方法實現:
cvt 1280 1024
sudo xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
sudo xrandr --addmode VGA1 "1280x1024_60.00"
sudo xrandr --output VGA1 --mode "1280x1024_60.00"
就可以臨時的調整解析度到1280x1024.

G. 嵌入式技術需要學習什麼

嵌入式系統軟體工程 方法實用技術及應用,免費下載

鏈接:https://pan..com/s/10No3IypKyLg01bV4T9b22w

pdf" data_size="50.30M" data_filelogo="https://gss0.bdstatic.com//yun-file-logo/file-logo-6.png" data_number="1" data_sharelink="https://pan..com/s/10No3IypKyLg01bV4T9b22w" data_code="56st">

提取碼:56st

《嵌入式系統軟體工程:基礎知識、方法和應用》系統地闡述嵌入式系統軟體工程所涉及的過程、方法、內容,以及在典型工業領域中的應用。全書內容分為兩大部分:第一部分介紹嵌入式系統軟體工程方法論,主要包括嵌入式軟體的開發過程(需求工程、軟體和系統體系結構、編程和測試等內容),開發和測試中所採用的標准,與安全性相關的軟體系統的准入,以及嵌入式軟體所涉及的法律問題:第二部分介紹嵌入式系統軟體在汽車領域、軌道交通領域、航天領域、醫療器械、工業自動化、通信系統中的應用,在每個應用領域重點介紹具體應用領域的一些特定需求、技術和限制條件,以及它們對於嵌入式系統軟體開發過程的影響。

H. 做Android驅動開發需要了解哪些方面的知識

匯流排知識,比如PCI、USB匯流排。晶元知識。驅動其實就是對設備上一些寄存器的配置、CPU與設備本身的通訊以及對不同命令的處理。

閱讀全文

與lddandroid相關的資料

熱點內容
編譯c無法識別unsighed 瀏覽:431
怎麼給幾年前的安卓機強行刷機 瀏覽:316
天方地圓製作演算法 瀏覽:193
演算法失效分析 瀏覽:760
gcc編譯選項給gdb調試 瀏覽:590
ios和android前景好 瀏覽:66
蘋果如何藍牙傳送安卓app 瀏覽:552
方舟編譯器mod怎麼用 瀏覽:762
伺服器地址欄在哪裡 瀏覽:397
做安檢還是程序員好 瀏覽:529
程序員最火的bug 瀏覽:938
騰訊文件夾英文怎麼寫 瀏覽:127
pdf內碼 瀏覽:434
微信小程序文件夾怎麼發給好友 瀏覽:971
java不能被繼承的類 瀏覽:163
蘋果app網址怎麼添加 瀏覽:910
php明年的今天 瀏覽:115
麒麟970也能用方舟編譯器么 瀏覽:476
金融實驗大作業python 瀏覽:795
雲伺服器搭建聊天室 瀏覽:603