原创 Mini2440啓動代碼的編寫(裸奔)
>>>出處<<< 啓動代碼是系統上電或復位以後運行的第一段代碼,它的作用是在用戶程序運行之前對系統硬件及軟件運行環境進行必要的初始化並在最後使程序跳轉到用戶程序,它直接面對ARM處理器內核及硬件控制器進行編程,所執行的操作與具體的目標系統
原创 STM32通用定時器
STM32通用定時器 STM32的定時器功能很強大,學習起來也很費勁兒. 其實手冊講的還是挺全面的,只是無奈TIMER的功能太複雜,所以顯得手冊很難懂,我就是通過這樣看手冊:while(!SUCCESS){看手冊…}才搞明白的!
原创 關於ARM9協處理器CP15及MCR和MRC指令
在基於ARM的嵌入式應用系統中,存儲系統通常是通過系統控制協處理器CP15完成的。CP15包含16個32位的寄存器,其編號爲0~15。 訪問CP15寄存器的指令 MCR ARM寄存器到協處理器寄存器的數據傳送 MRC 協處理器寄存
原创 GCC __asm__例子
__asm__是GCC關鍵字asm的宏定義: #define __asm__ asm __asm__或asm用來聲明一個內聯彙編表達式,所以任何
原创 記錄
[lbc@U-BOOT]# tftp e.bin dm9000 i/o: 0x20000300, id: 0x90000a46
原创 IAR編譯“地址無關代碼”(PID)選項
固件升級時,會擦寫當前程序的代碼段。故,擦寫前,需考慮將代碼搬移到sram內運行。 前提條件是這段代碼是“地址無關代碼”。 閱讀IAR手冊,發現編譯選項有對“地址無關代碼”的支持: --pi_veneers Syntax --pi
原创 棧與堆的區別(轉)
原文:棧與堆的區別 1。 內存分配方面:堆:操作系統有一個記錄空閒內存地址的鏈表,當系統收到程序的申請時,會遍歷該鏈表,尋找第一個空間大於所申請空間的堆結 點,然後將該結點從空閒結點鏈表中刪除,並將該結點的空間分配給程序,另外,
原创 sizeof計算方法
Cpp代碼 // Example of the sizeof keyword size_t i = sizeof( int ); struct align_depends { char c; i
原创 GCC-Inline-Assembly-HOWTO(C語言嵌入彙編 gcc編譯器)
怎樣在C語言嵌入彙編代碼. 抱歉,不知什麼緣故,所有例子裏的代碼都排成了一行,我在編輯模式裏換行正常,很漂亮的代碼。請知道如何解決的朋友告訴我下。 源網頁: >>WIKI<< 4. Basic Inline. The for
原创 exec系統調用的幾個彙編代碼
#include <stdio.h> void main() { Char *name[2]; Name[0] =“/bin/sh”; Name[1] = NULL; Execve(name[0], name, NULL); } 使用
原创 hexdump(breaf)
用途說明 hexdump命令一般用來查看”二進制“文件的十六進制編碼,但實際上它的用途不止如此,手冊頁上的說法是“ascii,decimal, hexadecimal, octaldump“,這也就是本文標題爲什麼要將”十六“給引起來的原
原创 Android 6.0 Log的工作原理
鏈接: Android 6.0 Log的工作原理
原创 STUN協議簡析
STUN簡介 STUN(Simple Traversal of UDP over NATs,NAT 的UDP簡單穿越)是一種網絡協議,它允許位於NAT(或多重NAT)後的客戶端找出自己的公網地址,查出自己位於哪種類型的NAT之後以及NAT
原创 Linux 套接字
http://www.yeolar.com/note/2012/05/18/linux-socket/#id9