南極sg源碼
Ⅰ 《源代碼 (2011)》在線免費觀看百度雲資源,求下載
《源代碼 (2011)》網路網盤高清資源免費在線觀看:
鏈接: https://pan..com/s/1Ak2SKJaeSS8Sg6Enust6_Q
《源代碼 (2011)》
導演: 鄧肯·瓊斯
編劇: 本·雷普利
主演: 傑克·吉倫哈爾、維拉·法米加、米歇爾·莫納漢、傑弗里·懷特、拉塞爾·皮特斯、詹姆斯·A·伍茲、邁克爾·阿登、喬·柯布登、卡斯·安瓦爾
類型: 科幻、懸疑、驚悚
製片國家/地區: 美國、加拿大
語言: 英語
上映日期: 2011-08-30(中國大陸)、2011-03-11(西南偏南電影節)、2011-04-01(美國)
片長: 93分鍾
又名: 啟動原始碼(台)、危機解密(港)
在阿富汗執行任務的美國空軍飛行員科特史蒂文斯上尉(傑克·吉倫哈爾 Jake Gyllenhaal 飾)突然驚醒,發現自己在一輛高速行駛的列車上,而他的身邊坐著一個素不相識的女子克里斯蒂安(米歇爾·莫娜漢 Michelle Monaghan 飾)正在與自己講話。科爾不知自己為什麼會在這輛車上,而且他發現自己居然是以另一個人的身份存在,正當他迷惑不解的時候,列車上忽然發生爆炸……
科特又一次驚醒,發現自己身處一個密閉的太空倉里,有一位女軍官古德溫(維拉·法米加 Vera Farmiga 飾)正在通過視頻和自己對話,並要求自己報告列車上發生的事情。一頭霧水的科特還沒搞明白是怎麼回事時,他又一次被送上那輛列車。這次之後,科特終於明白自己在執行一件任務,負責調察芝加哥火車爆炸案找到恐怖份子並查出他的下一個目標。科特被一次又一次的送上那輛高速列車,每次只有八分鍾的時間調察,調察過程中,科特發現自己已在一周前去世,原來他正在參與是一項「腦波原代碼」的秘密任務,這項任務通過已經死亡的科特尚未完全死亡的腦細胞影像來還原事件,調查事情的真相。最終,科特順利完成了任務,但是他卻決定再一次返回列車,拯救列車上那些無辜的生命……
Ⅱ www.xxx.com.sg最後的sg是指哪個國家
樓主問的是兄戚衡頂級地理域名,sg代表的是新加坡
AQ(代表南極洲)、AR(阿根廷)、AT(奧地利)、AU(澳大利亞)、BE(比利時)、BR(巴西)、CA(加拿大)、CH(瑞士)、CN(中國)、DE(德國)、DK(丹麥)、ES(西班牙)、FI(芬蘭羨做)、FR(法國)、GR(希臘)、IE(、愛爾蘭)、IL(以色列)、IN(印度)、IS(冰島)、IT(義大利)、JP(日本)、KR(韓國)、MY(馬來西亞)、NL(荷蘭)、NO(挪威)、NZ(紐西蘭)、PT(葡萄牙)、RU(俄羅斯)、SE(瑞典)、SG(新加坡)、TH(泰國)、TW(中國台灣)、UK或GB(英仔昌國)、US(美國)(一般可省略)等。
Ⅲ C語言或C++編寫二維碼的解碼部分詳細的源代碼及說明
1、二維碼有很多種標准,可謹輪以控制存儲數據的信息量,也可以控制容錯的數據量[使得部分污損的二維碼可以被正常讀取。通常的做法是調用二維碼設計方提供的組件,如果是自己生成二維碼,應該可以生成可以看起來很像的東西。
2、常式:
<pre name="code" class="cpp">int Fb_QrDisp(int iPenX,int iPenY,QRcode*pQRcode)
{
T_PixelDatasg_tOriginPixelDatas;
T_PixelDatasg_tZoomPixelDatas;
//intiZoom;
inti;
g_tOriginPixelDatas.iWidth= pQRcode->width;
g_tOriginPixelDatas.iHeight=pQRcode->width;
g_tOriginPixelDatas.iLineBytes=g_tOriginPixelDatas.iWidth;
g_tOriginPixelDatas.aucPixelDatas= pQRcode->data;
/*
if(pQRcode->version< = 1)
{
iZoom= 2;
}
else
{
iZoom= 2;
}
g_tZoomPixelDatas.iWidth = pQRcode->width*iZoom;
g_tZoomPixelDatas.iHeight=pQRcode->width*iZoom;
g_tZoomPixelDatas.iLineBytes=g_tZoomPixelDatas.iWidth;
g_tZoomPixelDatas.aucPixelDatas= malloc(g_tZoomPixelDatas.iWidth* g_tZoomPixelDatas.iHeight);
if(g_tZoomPixelDatas.aucPixelDatas== NULL)
{
printf("g_tZoomPixelDatas->aucPixelDatasmalloc failed "神嘩);
return-1;
}
PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas);
#if 0
printf("g_tZoomPixelDatas.iWidth=%d,g_tZoomPixelDatas.iHeight=%d ", g_tZoomPixelDatas.iWidth,g_tZoomPixelDatas.iHeight);
for(i=0;i<(g_tZoomPixelDatas.iWidth*g_tZoomPixelDatas.iHeight);i++)
{
printf("0x%x,",g_tZoomPixelDatas.aucPixelDatas[i]);
}
printf(" ");
#endif
*/
Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas);
return 0;
}
因為stmf429運行起來後內存祥瞎信不夠,這里不用申請內存再擴充放大二維碼數據的方法,而是直接描點。所以這里注釋掉了放大部分。
Ⅳ Android 重學系列 ion驅動源碼淺析
上一篇文章,在解析初始化GraphicBuffer中,遇到一個ion驅動,對圖元進行管理。首先看看ion是怎麼使用的:
我們按照這個流程分析ion的源碼。
如果對ion使用感興趣,可以去這篇文章下面看 https://blog.csdn.net/hexiaolong2009/article/details/102596744
本文基於Android的Linux內核版本3.1.8
遇到什麼問題歡迎來本文討論 https://www.jianshu.com/p/5fe57566691f
什麼是ion?如果是音視頻,Camera的工程師會對這個驅動比較熟悉。最早的GPU和其他驅動協作申請一塊內存進行繪制是使用比較粗暴的共享內存。在Android系統中使用的是匿名內存。最早由三星實現了一個Display和Camera共享內存的問題,曾經在Linux社區掀起過一段時間。之後各路大牛不斷的改進之下,就成為了dma_buf驅動。並在 Linux-3.3 主線版本合入主線。現在已經廣泛的運用到各大多媒體開發中。
首先介紹dma_buf的2個角色,importer和exporter。importer是dma_buf驅動中的圖元消費者,exporter是dma_buf驅動中的圖元生產者。
這里借用大佬的圖片:
ion是基於dma_buf設計完成的。經過閱讀源碼,其實不少思路和Android的匿名內存有點相似。閱讀本文之前就算不知道dma_buf的設計思想也沒關系,我不會仔細到每一行,我會注重其在gralloc服務中的申請流程,看看ion是如何管理共享內存,為什麼要拋棄ashmem。
我們先來看看ion的file_operation:
只有一個open和ioctl函數。但是沒有mmap映射。因此mmap映射的時候一定其他對象在工作。
我們關注顯卡英偉達的初始化模塊。
文件:/ drivers / staging / android / ion / tegra / tegra_ion.c
mole_platform_driver實際上就是我之前經常提到過的mole_init的一個宏,多了一個register注冊到對應名字的平台中的步驟。在這裡面注冊了一個probe方法指針,probe指向的tegra_ion_probe是載入內核模塊注冊的時候調用。
先來看看對應的結構體:
再來看看對應ion內的堆結構體:
完成的事情如下幾個步驟:
我們不關注debug模式。其實整個就是我們分析了很多次的方法。把這個對象注冊miscdevice中。等到insmod就會把整個整個內核模塊從dev_t的map中關聯出來。
我們來看看這個驅動結構體:
文件:/ drivers / staging / android / ion / ion_heap.c
這里有四個不同堆會申請出來,我們主要來看看默認的ION_HEAP_TYPE_SYSTEM對應的heap流程。
其實真正象徵ion的內存堆是下面這個結構體
不管原來的那個heap,會新建3個ion_system_heap,分別order為8,4,0,大於4為大內存。意思就是這個heap中持有一個ion_page_pool 頁資源池子,裡面只有對應order的2的次冪,內存塊。其實就和夥伴系統有點相似。
還會設置flag為ION_HEAP_FLAG_DEFER_FREE,這個標志位後面會用到。
文件:/ drivers / staging / android / ion / ion_page_pool.c
在pool中分為2個鏈表一個是high_items,另一個是low_items。他們之間的區分在此時就是以2為底4的次冪為分界線。
文件:/ drivers / staging / android / ion / ion.c
因為打開了標志位ION_HEAP_FLAG_DEFER_FREE和heap存在shrink方法。因此會初始化兩個回收函數。
文件:/ drivers / staging / android / ion / ion_heap.c
此時會創建一個內核線程,調用ion_heap_deferred_free內核不斷的循環處理。不過由於這個線程設置的是SCHED_IDLE,這是最低等級的時間片輪轉搶占。和Handler那個adle一樣的處理規則,就是閑時處理。
在這個循環中,不斷的循環銷毀處理heap的free_list裡面已經沒有用的ion_buffer緩沖對象。
文件:/ drivers / staging / android / ion / ion_system_heap.c
注冊了heap的銷毀內存的方法。當系統需要銷毀頁的時候,就會調用通過register_shrinker注冊進來的函數。
文件:/ drivers / staging / android / ion / ion_page_pool.c
整個流程很簡單,其實就是遍歷循環需要銷毀的頁面數量,接著如果是8的次冪就是移除high_items中的page緩存。4和0則銷毀low_items中的page緩存。至於為什麼是2的次冪其實很簡單,為了銷毀和申請簡單。__free_pages能夠整頁的銷毀。
文件:/ drivers / staging / android / ion / ion.c
主要就是初始化ion_client各個參數,最後把ion_client插入到ion_device的clients。來看看ion_client結構體:
核心還是調用ion_alloc申請一個ion緩沖區的句柄。最後把數據拷貝會用戶空間。
這個實際上就是找到最小能承載的大小,去申請內存。如果8kb申請內存,就會拆分積分在0-4kb,4kb-16kb,16kb-128kb區間找。剛好dma也是在128kb之內才能申請。超過這個數字就禁止申請。8kb就會拆成2個4kb保存在第一個pool中。
最後所有的申請的page都添加到pages集合中。
文件:/ drivers / staging / android / ion / ion_page_pool.c
能看到此時會從 ion_page_pool沖取出對應大小區域的空閑頁返回上層,如果最早的時候沒有則會調用ion_page_pool_alloc_pages申請一個新的page。由於引用最終來自ion_page_pool中,因此之後申請之後還是在ion_page_pool中。
這里的處理就是為了避免DMA直接內存造成的緩存差異(一般的申請,默認會帶一個DMA標志位)。換句話說,是否打開cache其實就是,關閉了則使用pool的cache,打開了則不使用pool緩存,只依賴DMA的緩存。
我們可以看另一個dma的heap,它是怎麼做到dma內存的一致性.
文件: drivers / staging / android / ion / ion_cma_heap.c
能看到它為了能辦到dma緩存的一致性,使用了dma_alloc_coherent創建了一個所有強制同步的地址,也就是沒有DMA緩存的地址。
這里出現了幾個新的結構體,sg_table和scatterlist
文件:/ lib / scatterlist.c
這裡面實際上做的事情就是一件:初始化sg_table.
sg_table中有一個核心的對象scatterlist鏈表。如果pages申請的對象數量<PAGE_SIZE/sizeof(scatterlist),每一項sg_table只有一個scatterlist。但是超出這個數字就會增加一個scatterlist。
用公式來說:
換句話說,每一次生成scatterlist的鏈表就會直接盡可能占滿一頁,讓內存更好管理。
返回了sg_table。
初始化ion_handle,並且記錄對應的ion_client是當前打開文件的進程,並且設置ion_buffer到handle中。使得句柄能夠和buffer關聯起來。
每當ion_buffer需要銷毀,
Ⅳ 《南極大冒險》用英文怎麼說`~
南極李褲大冒險 Eight Below (2006)
其他譯名: 極檔租地雪犬, 零下八度, 南極物語
其他片名: Antarctica (USA) (working title)
MPAA: Rated PG for some peril and brief mild language.
片長: 120分鍾
國家/地區: 美國 /
語言: 英語 /
色彩: 彩色 /
混音: 杜比數字 / SDDS / DTS /
分級: Canada:PG (Ontario) / Singapore:PG / USA:PG / Australia:PG / UK:PG / Malaysia:18SG /行擾兆
上映日期: 2006-2-17