Time of Update: 2018-12-04
1.初始化與銷毀互斥量Linux使用pthread_mutex_t 資料類型表示互斥量,並使用pthread_mutex_init函數對互斥量進行初始化。 #include <pthread.h>int pthread_mutex_init(pthread_mutex_t * restrict mutex,const pthread_mutexattr * restrict attr); 第一個參數是互斥量的指標,互斥量在該函數內被初始化。第二個參數是互斥量的屬性,一般置為NULL。
Time of Update: 2018-12-04
在核心解開rootfs.initramfs之後,VFS就在核心建立了一棵樹,我們寫一段簡單的代碼對這個樹進行遍曆:static void VFSWalk(CVFSWalk* pWalk, void* pParent, dentry* pEntry){ // 插入所有的子節點 struct dentry* pNode; void* pLast = NULL; list_for_each_entry(struct dentry, pNode, &pEntry-
Time of Update: 2018-12-04
在uclinux核心載入rootfs.initramfs後對每一個dentry對應的inode進行測試,發現一個無法理解的東西:下面的代碼用於判斷一個struct dentry是否目錄: if(S_ISDIR(pEntry->d_inode->i_mode)) { IsDir = 1;
Time of Update: 2018-12-04
1.開啟檔案#include<fcntl.h>定義函數 int open( const char * pathname, int flags);int open( const char * pathname,int flags, mode_t mode);函數說明 參數pathname 指向欲開啟的檔案路徑字串。下列是參數flags 所能使用的旗標:O_RDONLY 以唯讀方式開啟檔案O_WRONLY 以唯寫方式開啟檔案O_RDWR
Time of Update: 2018-12-04
本文適用於ADSP-BF561Davinci-DM365歡迎轉載,但請保留作者資訊快樂蝦lights@wo.com.cn安裝coLinux時選擇的用做根檔案系統的Fedora只有4G,顯然是太小了,我們為561單獨建立一個虛擬磁碟:fsutil file createnew bfin.img 20000000000再為DM365單獨建立一個虛擬磁碟fsutil file createnew davinci.img
Time of Update: 2018-12-04
文章目錄 1.1.1 ILT表1.1.2 DLL中的函數1.1.3 自訂節1.1.4 改變節中函數的順序1.1.5 擷取.text節的起始地址 快樂蝦http://blog.csdn.net/lights_joy/lights@wo.com.cn 本文適用於Xp sp3 / Vs2008 歡迎轉載,但請保留作者資訊 這個節看起來很容易理解,不就是存放代碼的嘛,看看頭資訊:SECTION HEADER #2
Time of Update: 2018-12-04
持續更新中...http://blog.sina.com.cn/s/articlelist_2079395307_7_1.html 技術部落格http://www.owlei.com/DancingWind/ 48個OpenGL教程http://www.hiwebgl.com/ Hi,WebGL 網站http://blog.csdn.net/augusdi/article/category/685679 openGL部落格http://blog.csdn.net/d04421024/
Time of Update: 2018-12-04
1.複製檔案描述符使用如下函數: #include <unistd.h>int dup(int filedes);int dup2(int filedes,int filedes2);
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/歡迎轉載,但請保留作者資訊 準備工作近日開始學習AAC編碼,正好在項目中用到了DVSDK中的AAC編碼器,就此分析一下此編碼器產生的碼流。根據TI的datasheet,此編碼器支援的特性有:AAC-LC編碼器以1024個採樣點為一個編碼單元,產生了下面的資料:第一幀(128位元組):0x0152A830 ff f9 60 40 10 1f fc 00 d0 40 06 f6 50 00 00 00 00 00 00 00
Time of Update: 2018-12-04
1.位元組序#include<netinet/in.h>定義函數 unsigned short int htons(unsigned short int hostshort);函數說明 htons()用來將參數指定的16位hostshort轉換成網路字元順序。傳回值 返回對應的網路字元順序。#include<netinet/in.h>定義函數 unsigned long int htonl(unsigned long int hostlong);函數說明
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/歡迎轉載,但請保留作者資訊 在adts_fixed_header()之後就是這一小節了,標準中定義:在ffmpeg中這一小節是和adts_fixed_header一起處理的,從代碼中可以明顯看到ffmpeg直接對copyright_identification_bit、copyright_identification_start、adts_buffer_fullness這三個定義做了丟棄處理。這一節消耗了28bit:0 10
Time of Update: 2018-12-04
1.相關函數說明 #include<sys/types.h>#include<unistd.h>定義函數 int chown(const char * path, uid_t owner,gid_t group);函數說明
Time of Update: 2018-12-04
1. iptables 中 SNAT 源地址可以指定某一段IP 但是需要有iprange的支援 //將源地址為192.168.1.1-192.168.1.5的包 改成 192.168.2.2iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.1-192.168.1.5 -j SNAT --to-source 192.168.2.2 如果不支援, 只能修改源碼, 讓其識別指定的範圍符號
Time of Update: 2018-12-04
1.非阻塞網路程式--伺服器端由於通訊端是一種特殊的檔案,因此,可以使用變更檔阻塞狀態的方法修改通訊端的阻塞狀態。當通訊端被設定為非阻塞狀態時,如果對資料暫停用通訊端進行讀寫操作,讀寫函數會返回-1,共置errno為EAGAIN,表示當前資料不可用。下例同樣示範大小寫字母轉換的程式。//server.c#include <stdio.h>#include <string.h>#include <unistd.h>#include <ctype.h>
Time of Update: 2018-12-04
些在windows下能夠開啟的txt文字檔在ubuntu下用gedit開啟時,中文顯示是亂碼,這是因為編碼方式不同造成的,windows下有些txt檔案的編碼方式gbk,而ubuntu下的gedit預設沒有對gdk的支援,所以需要手動設定,在菜單-->SystemTool-->ConfigurationEditor裡面/app/gedit-2/preference/encordings裡面有個auto-detect,後面的值裡面加上gbk,gb#####之類的就可以了,不行的話,把那
Time of Update: 2018-12-04
試題1:請寫一個C函數,若處理器是Big_endian的,則返回0;若是Little_endian的,則返回1解答:int checkCPU() { { union w { int a; char b; } c; c.a = 1; return (c.b == 1); } } 剖析:嵌入式系統開發人員應該對Little-endian和Big-endian模式非常瞭解。採用Little-
Time of Update: 2018-12-04
objdump和readelf功能相似,都可以從二進位檔案中讀取相應的資訊並顯示,它們的區別在readelf.c中有相關的說明:/* The difference between readelf and objdump: Both programs are capable of displaying the contents of ELF format files, so why does the binutils project have two file dumpers ?
Time of Update: 2018-12-04
經過十個月的努力,終於成功在DM365上實現了兩路D1+兩路CIF的H264編碼,在DM368上實現了四路D1+四路CIF的H264編碼。在整個開發過程中,有憤怒,有無奈,也有喜悅,聊記下一點粗淺的看法。一流的硬體應當說,365和368的運算能力還是比較強悍的,性價比不錯。DM36x + TVP5158的設計方案看似合理,但整體感覺DM36x就是一個不成熟的CPU,完全不像是TI這樣的大廠推出來的晶片:1、 PRTCSS這個硬體模組幾乎沒有任何實用價值,最後還是被迫外加看門狗。2、
Time of Update: 2018-12-04
在編譯uclinux時,如果在核心中啟用對initramfs的支援,那麼編譯完成後會自動產生一個叫rootfs.initramfs的檔案,這個檔案可以用做uclinux啟動時的根檔案系統。此檔案也可用make image命令產生,我們看看與initramfs相關的部分:/bin/bash /cygdrive/d/ embed/uClinux-dist/linux-2.6.x/scripts/gen_initramfs_list.sh -u squash -g squash
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/lights@hb165.com 本文適用於Xp sp3Vs2008 歡迎轉載,但請保留作者資訊 我們知道一個程式產生後會包含多個SECTION,如代碼,資料等等,本文擬簡單學習驗證一下VS2008下產生的程式的SECTION。使用VC的嚮導建立一個名為demo的console工程,修改工程屬性“連結器->調試->產生對應檔”,使之產生map檔案。此時工程中只有一個簡單的main函數: int