原创 結構體中的指針函數以及“結構體”的繼承

轉載自 herowuking 最終編輯 herowuking 結構體中的指針函數以及“結構體”的繼承#include <stdio.h>#include <stdlib.h>struct Fruit{ void (*output)(vo

原创 loaders& linkers

今天把chinalinux翻譯的loaders & linkers 大致翻了一下,想找到一些關於前兩天編譯調試中的問題,總算是有點收穫的。 .text .data .bss這三個大段都是由各目標文件的相應段組合而成的。在寫鏈接腳本文件的時

原创 NAND FLASH操作學習筆記

首先是幾個C語言的學習點。 1.利用一個函數結構體,來保存某一類的函數首地址,一個很好的編程技巧,可以使程序可讀性增加。做法是: typedef struct {    void (*nand_reset)(void);    void

原创 pthread_join pthread_exit pthread_detach

pthread_join     pthread_exit     函數pthread_join用來等待一個線程的結束。函數原型爲:  extern int pthread_join __P ((pthread_t __th, void*

原创 條件變量

1. 相關函數                                                                                                #include <pthrea

原创 U-BOOT移植——支持Davinci的MMC

下面是這兩天看SD標準和365資料進行的小結,下一步對U-BOOT添加MMC支持。讓悲劇的網卡見鬼去吧。 1.       MMC/SD是兩種不同的格式,SD比MMC要高級,可以兼容MMC,並且速度要快。軟件區分SD還是MMC,靠CMD1

原创 U-BOOT支持MMC

昨晚的事情讓我決定不管學到什麼知識,哪怕再小的,都要及時的記錄下來,現在的腦子怎麼這麼不好使,才幾天就忘了。 MMC的支持,主要就幾個地方。 1.改寫atmel_mci.c文件,裏面的幾個函數都是和FAT文件系統函數相關聯的。具體的做法是

原创 U-BOOT配置編譯全過程

原文: http://bebread2.juliantec.info/julblog//post/5/15

原创 linux設備驅動程序學習筆記——container_of宏

   在open函數中,int (*open) (struct inode *inode,strcut file *flip); inode->i_cdev結構包含了我們在註冊時配置的cdev結構,但是我們實際真正需要的是包含cdev結構

原创 調試 日記

開學到現在一直在調的365,現在U-BOOT已經跑起來了,把最近學到的東西進行一下小結。 1.ARM內部的RAM,又稱爲緊耦合存儲器(TCM),TCM的啓用必須要通過一定的設置。當選擇非NOR啓動的時候,啓動引腳自動配置該設置,故測試合衆

原创 linux設備驅動程序學習筆記——分配內存

SLAB 動態內存管理 內存管理的目標是提供一種方法,爲實現各種目的而在各個用戶之間實現內存共享。內存管理方法應該實現以下兩個功能: 最小化管理內存所需的時間 最大化用於一般應用的可用內存(最小化管理開銷) 內存管理實際上是一種關

原创 堆與棧有什麼區別?

堆與棧有什麼區別?一、預備知識—程序的內存分配一個由c/C++編譯的程序佔用的內存分爲以下幾個部分1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似於數據結構中的棧。2、堆區(heap) —

原创 Linux 線程和進程

今天在寫應用層程序的時候,按照IPNC的指導手冊,要想調用某個函數,首先要初始化這個模塊。原話如下: Before we start to use the GetAVData, we have to initial the message

原创 scanf()

scanf()函數的控制串 函數名: scanf 功 能: 執行格式化輸入 用 法: int scanf(char *format[,argument,...]); scanf()函數是通用終端格式化輸入函數,它從標準輸入設備(鍵

原创 linux等待隊列

Linux內核的等待隊列(轉載) Linux內核的等待隊列是以雙循環鏈表爲基礎數據結構,與進程調度機制緊密結合,能夠用於實現核心的異步事件通知機制。在Linux2.4.21中,等待隊列在源代碼樹include/linux/wait.h中,