Time of Update: 2018-12-04
小姑娘快4歲了,開始會編故事了。當然,條件是她講一個,爸爸講兩個。晚上,小姑娘開始編故事。“我給你講一個小山羊的故事。”,嗯,一個沒聽過的故事,不錯!“從前呀,在山上住著一群猴子。一隻猴子出來了,抬頭一看,哎呀,天上出現了十個太陽。那怎麼辦呢?然後有個人拿著弓箭在那裡射,他拿了一個箭,嗖,一個太陽掉下來了,又一個太陽掉下來了。然後它的兄弟都不見了,只有一個太陽了。。。。”,不錯,有點像後弈射日。“這個時候有只小山羊來了。。。。。。。”。山羊來做什麼呢?“天上又出現了十個太陽,然後那個人又射射射,
Time of Update: 2018-12-04
1.1 基本概念 斷言是一種讓錯誤在運行時候自我暴露的簡單有效實用的技術。它們協助你較早較輕易地發現錯誤,使得整個調試過程效率更高。 斷言是布爾調試語句,用來檢測在程式正常啟動並執行時候某一個條件的值是否總為真,它能讓錯誤在運行時刻暴露在程式員面前。使用斷言的最大好處在於,能在更解決錯誤的發源地的地方發現錯誤。斷言具有以下特徵:n 斷言是用來發現運行時刻錯誤的,發現的錯誤是關於程式實現方面的。n
Time of Update: 2018-12-04
norflash驅動模組的初始化代碼為:int __init init_ezkit561_flash(void){ printk(KERN_NOTICE "ezkit561 map: mapping %ld MiB flash at 0x%x/n", EZKIT561_FLASH_SIZE / 0x100000, EZKIT561_FLASH_BASE); // 將物理地址映射到linux的核心空間,在uClinux中,直接返回EZKIT561_FLASH_
Time of Update: 2018-12-04
# NLS nuisances.for as_var in / LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION / LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER / LC_TELEPHONE LC_TIMEdo if (set +x; test -z "`(eval $as_var=C; export $as_
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/lights@hb165.com 本文適用於ADI bf561 DSPuclinux-2008r1-rc8 (移植到vdsp5)Visual DSP++ 5.0 歡迎轉載,但請保留作者資訊 1.1
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/lights@hb165.com 本文適用於ADI bf561 DSPuclinux-2008r1-rc8 (移植到vdsp5)Visual DSP++ 5.0 歡迎轉載,但請保留作者資訊 1.1
Time of Update: 2018-12-04
1. 問題的產生NS2隻使用了一個主程式,所有的擴充都要編譯到主程式中去。這樣就造成了一個問題,每次擴充都要把整個程式編譯一道,速度慢而且麻煩。更有甚者,象BlueHoc這樣的擴充甚至於還要修改NS2的核心檔案,就更容易出錯。2. 解決的想法將ns2改為plugin的方式,將它的核心放在一個單獨的庫裡,將所有的擴充也做成一個個單獨的庫放在plugin目錄下,NS2主程式啟動時動態載入這些庫。3. 實驗仍舊以BlueHoc為例進行實驗。(1)將ns2分離為一個主程式和一個單獨的庫,這點通過vs20
Time of Update: 2018-12-04
maps用於定義norflash晶片的具體參數及其讀寫回呼函數。在driver/mtd/maps/ezkit561.c中實現了一個CFI Flash的樣本,因為AM29lv320支援CFI介面,所以就直接在此檔案的基礎上修改。下面就是map_info這個結構體的定義(include/linux/mtd/map.h):struct map_info { char *name; unsigned long size; unsigned long
Time of Update: 2018-12-04
在configure的第一段就是:if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias
Time of Update: 2018-12-04
uClinux將CFI和JEDEC的實現都放在mtd/chips目錄下,並將之稱為chip_driver,供上層的maps調用。chip_driver都要求填充一個叫做mtd_chip_driver的結構體(include/linux/mtd/map.h):struct mtd_chip_driver { struct mtd_info *(*probe)(struct map_info *map); void (*destroy)(struct mtd_info *);
Time of Update: 2018-12-04
Ns2使用了TCL/CL使TCL指令碼得以控制C++代碼的運行,因此理解它的運行過程就顯示非常重要,下面給出的這個簡單例子說明了這一過程。C++部分的代碼:#include <math.h>#include "tclcl.h"extern "C" {#include <otcl.h>} // 定義一個準備讓TCL指令碼調用的類,此類必須從TclObject繼承class CTestObject : public TclObject{private:
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/lights@hb165.com 本文適用於ADI bf561 DSPuclinux-2008r1.5-rc3 (移植到vdsp5)Visual DSP++ 5.0(update 5) 歡迎轉載,但請保留作者資訊 ENTRY(_real_start) [ -- sp ] = reti; p0.l = lo(WDOGA_CTL); p0.h = hi(WDOGA_CTL); r0
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/lights@hb165.com 本文適用於gcc-4.3.1configure –target=bfin-uclinux-gnuBlackfin系列DSPCygwin gcc 3.4.4 歡迎轉載,但請保留作者資訊 這條規則定義為:collect2$(exeext): $(COLLECT2_OBJS) $(LIBDEPS)# Don't try modifying collect2 (aka ld) in place--
Time of Update: 2018-12-04
寫這樣一份文檔主要源於建立gcc交叉編譯器時的錯誤,希望能夠搞清楚gcc交叉編譯器建立的整個過程。而在此之前對於指令碼的認識僅僅局限於瞭解,因而也希望在此過程中強迫自己對指令碼有一個比較深入的學習。先在手頭準備了一本《LINUX與UNIX SHELL編程指南》,大致瀏覽了一下這本書,碰到什麼再查吧!由於最後的目標是構建一個arm交叉編譯器,因而學習過程也以此為目標。開發環境選擇了cygwin。祝自己好運!
Time of Update: 2018-12-04
小姑娘四歲多,常有驚人之語。 某晚,和小姑娘在家吃包子,給小姑娘講“肉包子打狗--有去無回”,結果小姑娘問:“那隻狗要是吃完了還想吃怎麼辦?” 接著講“狗不理包子”,小姑娘問:“為什麼叫狗不理啊?是不是裡面放了毒藥,狗就不敢吃了?”............某晚,給小姑娘讀《昆蟲記》,小姑娘問:“石鳥為什麼要把家安在石頭上啊?不是在大樹上做窩呢?”爸爸:“為什麼一定要在大樹上做窩呢?是因為大樹媽媽可以保護它們嗎?”小姑娘:“是啊。大樹可以給它們擋雨。”爸爸:“那它們如果把窩放在石頭下面,
Time of Update: 2018-12-04
快樂蝦http://blog.csdn.net/lights_joy/lights@hb165.com 本文適用於ADI bf561 DSPuclinux-2008r1-rc8 (移植到vdsp5)Visual DSP++ 5.0 歡迎轉載,但請保留作者資訊 1.1 相關的全域變數1.1.1 _ramstart, _ramend, _rambase這三個全域變數的定義在head.s檔案中:/* * Set up the usable of RAM stuff. Size
Time of Update: 2018-12-04
1. 問題的由來在使用BlueHoc的過程中,發現它直接修改了ns2的一些核心檔案,那麼是否有一種方式可以不必修改NS2核心檔案而達到同樣的目的呢?2. 思路Ns2使用TCL/CL來將OTCL代碼與C++代碼結合起來,所有的模擬過程都是通過OTCL代碼調用的。那麼是否可以重載OTCL中相同名稱的類,在它們建立時將其指向自己的C++類呢?3. 測試代碼為了測試使用同名的OTCL類是否可以重載的問題,寫了以下的測試代碼:#include <math.h>#include
Time of Update: 2018-12-04
1 參數及變數在bootmem初始化完成之後,setup_arch開始進行下一個初始化工作: /* * get kmalloc into gear */ paging_init();這個函數的實現位於arch/mm/init.c: /* * paging_init() continues the virtual memory environment setup which * was begun by the code in arch/head.
Time of Update: 2018-12-04
這個函數位於drivers/mtd/chips/chipreg.c,用於尋找指定名稱的chip_driver,並調用它完成晶片的檢測。 /* Hide all the horrid details, like some silly person taking get_module_symbol() away from us, from the caller. */ struct mtd_info *do_map_probe(const char *name,
Time of Update: 2018-12-04
ns2中的資料包全部是由Packet進行表示的,當我們需要建立一個新的資料包時,就調用Packet::alloc方法,下面看看Packet::alloc都做了什麼:inline Packet* Packet::alloc(){ Packet* p = free_; if (p != 0) { assert(p->fflag_ == FALSE); free_ = p->next_; assert(p->