原创 bootloader

最近手裏有個ARM的板子 正好想學習下 早上看看了具體的系統移植,有點迷糊。想不明白PC的bios和嵌入式的bootloader的區別是啥 從google上搜索了一下……於是乎。  1. 引言  在專用的嵌入式板子運行 GNU/Linux

原创 volatile

一個定義爲volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設這個變量的值了。精確地說就是,優化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器裏的備份。下面是volatile變量的

原创 C語言 side effect 和 sequence point

C 語言中,術語副作用(side effect)是指對數據對象或者文件的修改。例如,以下語句        var = 99;的副作用是把 var 的值修改成 99。對表達式求值也可能產生副作用,例如:        se = 100對這個

原创 同步I/O、異步I/O

Linux® 中最常用的輸入/輸出(I/O)模型是同步 I/O。在這個模型中,當請求發出之後,應用程序就會阻塞,直到請求滿足爲止。這是很好的一種解決方案,因爲調用應用程序在等待 I/O 請求完成時不需要使用任何中央處理單元(CPU)。但

原创 經典推薦之嵌入式系統 Boot Loader 技術內幕(詹榮開)

本文詳細地介紹了基於嵌入式系統中的 OS 啓動加載程序 ―― Boot Loader 的概念、軟件設計的主要任務以及結構框架等內容。一、引言在專用的嵌入式板子運行 GNU/Linux 系統已經變得越來越流行。一個嵌入式 Linux 系統從軟

原创 C語言變量聲明內存分配(轉

一個由c/C++編譯的程序佔用的內存分爲以下幾個部分 1、棧區(stack)— 程序運行時由編譯器自動分配,存放函數的參數值,局部變量的值等。其操作方式類似於數據結構中的棧。程序結束時由編譯器自動釋放。 2、堆區(heap) — 在內存開闢

原创 講解RedHat Linux 5顯示中文的方法

Linux越來越流行,你對Linux瞭解了麼?安裝的RedHat Linux 5在打開瀏覽器時,中文顯示爲方塊,該如何解決?本文爲你詳細介紹RedHat Linux 5顯示中文,爲你在學習RedHat Linux 5顯示中文時起一定的作用。

原创 我的友情鏈接

51CTO博客開發

原创 atexit函數

atexit(設置程序正常結束前調用的函數) 相關函數 _exit,exit,on_exit 表頭文件 #include<stdlib.h> 定義函數 int atexit (void (*function)(

原创 以太網媒體接口MII RMII(MAC PHY MII關係)

以太網媒體接口有:MII RMII SMII GMII    所有的這些接口都從MII而 來,MII是(Medium Independent Interface)的意思,是指不用考慮媒體是銅軸、光纖、電纜等,因爲這些媒體處理的相關工

原创 C語言的const關鍵字

簡單方法:    int const nValue; // nValue是const   char const * pContent;// *pContent是const, pContent可變   (char *) const pCont

原创 linux 2.6內核makefile分析

  [摘要] 由於Linux的獨特優勢,使越來越多的企業和科研機構把目光轉向Linux的開發和研究上。目前Linux最新的穩定內核版本爲2.6.17,但是當今絕大部分對於Linux Makefile的介紹文章都是基於2.4內核的,可以說關

原创 ioctl詳細說明

ioctl 函數   本函數影響由fd 參數引用的一個打開的文件。   #include<unistd.h> int ioctl( int fd, int request, .../* void *arg */ ); 返回0

原创 c語言回調函數解析

回調函數 程序員常常需要實現回調。本文將討論函數指針的基本原則並說明如何使用函數指針實現回調。注意這裏針對的是普通的函數,不包括完全依賴於不同語法和語義規則的類成員函數(類成員指針將在另文中討論)。 聲明函數指針 回調函數是一個程序員

原创 指針參數傳遞內存的方法

如果函數的參數是一個指針,不要指望用該指針去申請動態內存。示例7-4-1中,Test函數的語句GetMemory(str, 200)並沒有使str獲得期望的內存,str依舊是NULL,爲什麼?    void GetMemory(