360doc--leon0821的文章 http://www.ahfyzs.com/rssperson/7267612.aspx 360doc (http://www.ahfyzs.com) zh-cn 360doc--個(gè)人圖書館 如何定制android源碼的編譯選項(xiàng) & 后期安裝? http://www.ahfyzs.com/content/13/0129/14/474846_263046521.shtml 2014/9/16 19:23:25
3.1)‘ANDROID''靜態(tài)圖像或文字的顯示 文件system/core/init/init.c的函數(shù)console_init_action()會(huì)通過(guò)load_565rle_image()或load_565rle_image_mbx()先嘗試顯示圖片INIT_IMAGE_FILE(一張565rle的壓縮的位圖): init/init.h: #define INIT_IMAGE_FILE "/initlogo.rle" 如果失敗,再直接在終端/dev/tty0上打印字符串"A N D R O I D"。
3種shell自動(dòng)交互的方法2007 http://www.ahfyzs.com/content/14/0424/11/7267612_371659290.shtml 2014/4/24 11:18:05
3種shell自動(dòng)交互的方法 2007一、背景。但是有時(shí)候我們可能會(huì)需要實(shí)現(xiàn)和交互程序如ftp,telnet服務(wù)器等進(jìn)行交互的功能,這時(shí)候我們需要用到shell的自動(dòng)交互功能,本文收集了較常用的三種自動(dòng)交互方法,并進(jìn)行了比較和總結(jié)。四、自動(dòng)交互方法一.重定向操作符command<<delimiter是一種非常有用的命令,shell將分界符delimiter之后直至下一個(gè)同樣的分界符之前的所有內(nèi)容都作為輸入,遇到下一個(gè)分界符,shell就知道輸入結(jié)束了。
嵌入式Linux啟動(dòng)信息全注釋(上) http://www.ahfyzs.com/content/14/0424/11/7267612_371658768.shtml 2014/4/24 11:16:41
setup_arch()函數(shù)打印(arch/ppc/kernel/setup.c),ppc_md.setup_arch()回調(diào)原型在arch/ppc/syslib/m8260_setup.c的m8260_setup_arch(void)函數(shù)中,上述常量信息在arch/ppc/platforms/Msc7119rdk.h中,該文件是設(shè)備相關(guān)的,平臺(tái)移植時(shí)的一大工作量應(yīng)該就是修改這類文件。mem_init()函數(shù)打印(mm/init.c)ide模塊初始化(drivers/ide/ide.c),先通過(guò)ide_system_bus_speed獲取總線速率,然后調(diào)用init_ide_data初始化ide相關(guān)數(shù)據(jù)。
Linux下的C編程實(shí)戰(zhàn)(開(kāi)發(fā)平臺(tái)搭建,文件系統(tǒng)編程,進(jìn)程控制與進(jìn)程通信編程,“線程”控制與“線程”通信編程,驅(qū)動(dòng)程序設(shè)計(jì),專家問(wèn)答) http://www.ahfyzs.com/content/14/0424/11/7267612_371656157.shtml 2014/4/24 11:09:52
Linux下的C編程實(shí)戰(zhàn)(開(kāi)發(fā)平臺(tái)搭建,文件系統(tǒng)編程,進(jìn)程控制與進(jìn)程通信編程,“線程”控制與“線程”通信編程,驅(qū)動(dòng)程序設(shè)計(jì),專家問(wèn)答)進(jìn)程控制中主要涉及到進(jìn)程的創(chuàng)建、睡眠和退出等,在Linux中主要提供了fork、exec、clone的進(jìn)程創(chuàng)建方法,sleep的進(jìn)程睡眠和exit的進(jìn)程退出調(diào)用,另外Linux還提供了父進(jìn)程等待子進(jìn)程結(jié)束的系統(tǒng)調(diào)用wait。Linux用一個(gè)核心進(jìn)程(輕量進(jìn)程)對(duì)應(yīng)一個(gè)線程,將線程調(diào)度等同于進(jìn)程調(diào)度,交給核心完成。
linux啟動(dòng)常見(jiàn)錯(cuò)誤對(duì)照 http://www.ahfyzs.com/content/14/0424/10/7267612_371651100.shtml 2014/4/24 10:56:16
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)usb-ohci.c: USB OHCI at membase 0xe9000000, IRQ 26.usb.c: new USB bus registered, assigned bus number 1.ov511.c: v1.48a for Linux 2.4 : OV511 USB Camera Driver.usb.c: registered new driver usb-storage。hub.c: USB new device connect on bus1/1, assigned device number 2.hub.c: USB new device connect on bus1/1, assigned device number 3.
ECC的代碼實(shí)現(xiàn) http://www.ahfyzs.com/content/14/0423/14/7267612_371417104.shtml 2014/4/23 14:49:04
//計(jì)算ECC代碼void NandTranResult(unsigned char reg2,unsigned char reg3,unsigned char *ECCCode){unsigned char reg1,reg2,reg3,temp;} // printf("可以校正的錯(cuò)誤/n"); // printf("dat[0]=0x%0x/n",dat[0]); } else if(temp == -1) { //printf("不可以校正的錯(cuò)誤"); } else if(temp == 0) { //printf("無(wú)錯(cuò)誤"); } else { // printf("數(shù)據(jù)區(qū)發(fā)生了錯(cuò)誤"); } //printf("/n/n"); } }
NAND FLASH ECC校驗(yàn)原理與實(shí)現(xiàn) http://www.ahfyzs.com/content/14/0423/14/7267612_371411575.shtml 2014/4/23 14:31:00
NAND FLASH ECC校驗(yàn)原理與實(shí)現(xiàn)什么是ECC校驗(yàn)定義  ECC校驗(yàn)是一種內(nèi)存糾錯(cuò)原理,它是現(xiàn)在比較先進(jìn)的內(nèi)存錯(cuò)誤檢查和更正的手段。它與Parity不同的是如果數(shù)據(jù)位是8位,則需要增加5位來(lái)進(jìn)行ECC錯(cuò)誤檢查和糾正,數(shù)據(jù)位每增加一倍,ECC只增加一位檢驗(yàn)位,也就是說(shuō)當(dāng)數(shù)據(jù)位為16位時(shí)ECC位為6位,32位時(shí)ECC位為7位,數(shù)據(jù)位為64位時(shí)ECC位為8位,依此類推,數(shù)據(jù)位每增加一倍,ECC位只增加一位。ECC原理。ecc_code[1] = ~ecc_code[1];
用協(xié)議分析工具學(xué)習(xí)TCP/IP http://www.ahfyzs.com/content/14/0417/18/7267612_369827325.shtml 2014/4/17 18:32:56
用協(xié)議分析工具學(xué)習(xí)TCP/IP.Opoperation),ARP請(qǐng)求、ARP應(yīng)答、RARP請(qǐng)求和RARP應(yīng)答,第二行中該字段值為IP地址、目的端的硬件地址和目的端ARP請(qǐng)求數(shù)據(jù)幀中都有發(fā)送端的硬件地址。1號(hào)機(jī)給1514字節(jié)大小的數(shù)據(jù),注意我們前文講過(guò)數(shù)據(jù)發(fā)送時(shí)是層層加協(xié)議頭的,=14字節(jié)以太網(wǎng)頭IP頭TCP頭 58行顯示的應(yīng)答信號(hào)1781514222,這個(gè)數(shù)是SEQ序號(hào)1460,1號(hào)機(jī)說(shuō)明已收到發(fā)來(lái)的數(shù)據(jù)。TCP重發(fā)、TCP/IP協(xié)議族是非常復(fù)雜的,但只要理解了還是不難學(xué)的。
linux sock http://www.ahfyzs.com/content/14/0417/18/7267612_369820643.shtml 2014/4/17 18:02:47
#include "unistd.h"#include "sys/types.h"#include "sys/socket.h"#include "netinet/in.h"#include "netinet/ip.h"#include "netinet/ip_icmp.h"#include "netdb.h"#include "errno.h"#include "arpa/inet.h"#include "signal.h"#include "sys/time.h"void send_icmp() { struct icmp* icmp = (struct icmp*)sendbuf;} struct icmp *icmp = (struct icmp*)(recvbuf + ((ip->ip_hl)<<2));
鏈路層訪問(wèn)PF http://www.ahfyzs.com/content/14/0417/17/7267612_369819375.shtml 2014/4/17 17:57:12
sll_pkttype 包含分組類型。有效的分組類型是:目標(biāo)地址是本地主機(jī)的分組用的 PACKET_HOST,物理層廣播分組用的 PACKET_BROADCAST ,發(fā)送到一個(gè)物理層多路廣播地址的分組用的 PACKET_MULTICAST,在混雜(promiscuous)模式下的設(shè)備驅(qū)動(dòng)器發(fā)向其他主機(jī)的分組用的 PACKET_OTHERHOST,本源于本地主機(jī)的分組被環(huán)回到分組套接口用的 PACKET_OUTGOING。sll_addr 和 sll_halen 包括物理層(例如 IEEE 802.3)地址和地址長(zhǎng)度。
進(jìn)程空間的程序的布局 http://www.ahfyzs.com/content/14/0410/11/7267612_367715473.shtml 2014/4/10 11:10:42
進(jìn)程空間的程序的布局??臻e區(qū)。堆(非連續(xù)區(qū)域)靜態(tài)常量數(shù)據(jù)。全局變量區(qū)。int a=0;//全局初始化區(qū)。char *p1;//全局未初始化區(qū)。int b;char s[]="123";char *p2;char *p3="hello,world";//"hello,world\0"在常量區(qū),p3在棧上。static int c=0;//全局靜態(tài)初始化區(qū)。p1=(char *)malloc(128);p2=(char *)malloc(256);free(p1) ;free(p2);
VC打開(kāi)另一個(gè)應(yīng)用程序 http://www.ahfyzs.com/content/14/0410/11/7267612_367714741.shtml 2014/4/10 11:08:19
VC打開(kāi)另一個(gè)應(yīng)用程序。ShellExecute(NULL,_T("open"),_T("zeecalls.exe"),NULL,_T("D:\\Program Files\\zeecalls\\"),SW_SHOWNORMAL);//進(jìn)程句柄HANDLE hThread; //進(jìn)程的主線程句柄DWORD dwProcessId; //進(jìn)程的IDDWORD dwThreadId; //進(jìn)程的主線程ID} PROCESS_INFORMATION;bool fRet=CreateProcess("D:\\Program Files\\zeecalls\\zeecalls.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);
C/C++ http://www.ahfyzs.com/content/14/0410/11/7267612_367714412.shtml 2014/4/10 11:07:19
C/C++ 嵌入式面試2(轉(zhuǎn)帖) 1> 如何判斷一個(gè)板子的cpu 是big-endian 還是 Little-endian的?一個(gè)程序只有一個(gè)副本;只讀,防止程序由于意外事故而修改自身指令;2)初始化數(shù)據(jù)段(數(shù)據(jù)段)——在程序中所有賦了初值的全局變量,存放在這里。
VC字符串轉(zhuǎn)換常用函數(shù) http://www.ahfyzs.com/content/14/0410/11/7267612_367713725.shtml 2014/4/10 11:05:19
VC字符串轉(zhuǎn)換常用函數(shù)。例如:char chArray[] = "Char test";TCHAR * p = _T("Char test");( 或LPTSTR p = _T("Char test");)CString theString = chArray;theString.Format(_T("%s"), chArray);theString = p;二、從其它包含字符串的變量中獲取指向該字符串的指針CString變量str = "2008北京奧運(yùn)";buf = (LPSTR)(LPCTSTR)str;BSTR類型的_variant_t變量v1 = (_bstr_t)"程序員";buf = _com_util::ConvertBSTRToString((_bstr_t)v1);
烤鴨的gerrit使用總結(jié) http://www.ahfyzs.com/content/14/0310/16/7267612_359313098.shtml 2014/3/10 16:23:28
[gerrit2@bogon gerrit_site_http]$[gerrit2@bogon gerrit_site_http]$ /home/gerrit2/gerrit_site_http/bin/gerrit.sh stop.如果在htpasswd命令創(chuàng)建的賬號(hào)之前,gerrit數(shù)據(jù)庫(kù)中已經(jīng)存在同名的gerrit用戶(如:通過(guò)直接操作數(shù)據(jù)庫(kù)添加的),那么web登錄時(shí),不會(huì)將htpasswd命令創(chuàng)建的賬號(hào)和gerrit數(shù)據(jù)庫(kù)中同名用戶關(guān)聯(lián)起來(lái),而是自動(dòng)新創(chuàng)建一個(gè)gerrit用戶與之關(guān)聯(lián)(即一個(gè)新的gerrit用戶ID),而且會(huì)要求你手動(dòng)輸入gerrit用戶名。
對(duì)稱加密和分組加密中的四種模式(ECB、CBC、CFB、OFB) http://www.ahfyzs.com/content/14/0224/10/7267612_355216284.shtml 2014/2/24 10:49:55
對(duì)稱加密和分組加密中的四種模式(ECB、CBC、CFB、OFB)AES加密。二. 分組密碼的填充。四. 分組密碼加密中的四種模式:3.1 ECB模式。不能隱藏明文的模式;3.2 CBC模式:不容易主動(dòng)攻擊,安全性好于ECB,適合傳輸長(zhǎng)度長(zhǎng)的報(bào)文,是SSL、IPSec的標(biāo)準(zhǔn)。3.3 CFB模式:分組密碼轉(zhuǎn)化為流模式;誤差傳送:一個(gè)明文單元損壞影響多個(gè)單元;3.4 OFB模式:
Windows線程創(chuàng)建、退出及資源釋放 http://www.ahfyzs.com/content/14/0218/12/7267612_353478380.shtml 2014/2/18 12:04:07
然而,只是這樣解釋還是有所偏差,因?yàn)樵诤芏嗍褂肅loseHandle關(guān)閉其他對(duì)象句柄的操作中都會(huì)釋放對(duì)象占用的資源,而對(duì)于線程,在調(diào)用CloseHandle之后并不會(huì)終止線程,也就不會(huì)立馬釋放線程資源(實(shí)現(xiàn)中線程還必須繼續(xù)運(yùn)行),調(diào)用CloseHandle之后系統(tǒng)會(huì)遞減線程內(nèi)核對(duì)象的使用計(jì)數(shù),當(dāng)線程執(zhí)行完畢(線程函數(shù)執(zhí)行完)之后也會(huì)遞減此線程內(nèi)核對(duì)象使用計(jì)數(shù),當(dāng)計(jì)數(shù)為0時(shí)才會(huì)釋放線程資源!
connect()函數(shù)阻塞問(wèn)題解決 http://www.ahfyzs.com/content/14/0218/11/7267612_353463141.shtml 2014/2/18 11:15:35
建立socket后默認(rèn)connect()函數(shù)為阻塞連接狀態(tài),在大多數(shù)實(shí)現(xiàn)中,connect的超時(shí)時(shí)間在75s至幾分鐘之間,想要縮短超時(shí)時(shí)間,可解決問(wèn)題的兩種方法:方法一、將socket句柄設(shè)置為非阻塞狀態(tài),方法二、采用信號(hào)處理函數(shù)設(shè)置阻塞超時(shí)控制。
鉤子函數(shù) http://www.ahfyzs.com/content/14/0217/19/7267612_353305442.shtml 2014/2/17 19:15:53
鉤子一旦安裝在系統(tǒng)中,會(huì)影響系統(tǒng)的性能,因?yàn)橄到y(tǒng)發(fā)出的這些被鉤子監(jiān)控的事件,都要經(jīng)過(guò)鉤子函數(shù)的處理,特別是對(duì)于系統(tǒng)范圍的全局鉤子。鉤子必備函數(shù)要安裝鉤子,首先要使用SetWindowsHookEx函數(shù),這個(gè)函數(shù)的原型如下:HHOOK SetWindowsHookEx(int idHook, // 要安裝的鉤子的類型HOOKPROC lpfn, // 鉤子函數(shù)的入口地址HINSTANCE hMod, // 調(diào)用鉤子函數(shù)的應(yīng)用程序的實(shí)例句柄DWORD dwThreadId // 要在其上安裝鉤子的線程的ID);
MFC程序逆向 – 消息篇(下) http://www.ahfyzs.com/content/14/0217/18/7267612_353301432.shtml 2014/2/17 18:57:05
73D31C62 PUSH DWORD PTR SS:[EBP+18]73D31C65 MOV EAX,DWORD PTR DS:[EDI]73D31C67 MOV ECX,EDI73D31C69 PUSH DWORD PTR SS:[EBP+14]73D31C6C PUSH ESI73D31C6D CALL DWORD PTR DS:[EAX+A0] <D1.?73D32296 PUSH DWORD PTR SS:[EBP+14]73D32299 PUSH DWORD PTR DS:[EAX+10]73D3229C PUSH DWORD PTR SS:[EBP+10]73D3229F PUSH DWORD PTR DS:[EAX+14] ;