在include/linux/kernel.h中有一個定義:#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))這個宏定義用於取得
在原始文件中,並不支持SMP,因而也就沒有per_cpu的問題,但在加上CONFIG_SMP之後,會有如下錯誤:[Error li1021] The following symbols referenced in processor p
在uclinux內核中,提供了一個函數:_cplb_mgr,此函數位於 arch/blackfin/kernel/cpu-nompu/cplbmgr.s,它的作用是當bf561發生cplb miss exception的時候替換掉最後的
在以前的實現中,直接用adi_acquire_lock來實現spinlock,在沒有啟用cache的時候,沒有任何問題,但是在啟用了icache之後,會出現死循環。vdsp5中adi_acquire_lock的實現在ccblkfn.h文
在以前的實現中,沒有手工對SDRAM分段,當內核小時還沒有發現問題,但當內核越來越大時,就開始出現問題了。主要表現為vdsp5在鏈接時,會自動將一些比較小的變量或者代碼段塞到空隙的地方,即使在output_section中加上FORCE
在內核中,對64個外部中斷的優先級的控制是通過CONFIG_IRQ_*這樣的宏來控制的,因此我們需要在config.h中加上對這些宏的定義,60-63這四個中斷保留,因而沒有定義。// 中斷優先級控制#define CONFIG_IRQ
出現一個很奇怪的問題:DSP上電後直接在仿真器上運行uclinux內核,串口無法接收到正常輸出,僅有一兩個異常字符。但是用VDSP4.5運行原來寫的一個串口程序,可以正常輸出。第一個郁悶的問題在於這個串口程序運行過一遍之後,再怎麼運行u
在編譯內核時,有一個鏈接錯誤:[Error li1021] The following symbols referenced in processor p0 could not be resolved: __bad_siz
uclinux-2008R1-RC8(bf561)到VDSP5的移植(43):__builtin_return_address的問題__builtin_return_address (LEVEL):這是GCC的內建函數,用於返回當前函數
這兩個函數的定義均在include/linux/slab_def.h中,其實現如下:static inline void *kmalloc(size_t size, gfp_t flags){ if (__builtin_con
在include/asm/delay.h中有一個函數:static inline void __delay(unsigned long loops){ if (ANOMALY_05000312) { /* Int
由於uclinux不支持smp,因此也沒有raw_rwlock_t這樣的定義,為此需要在include/asm/spinlock_types.h中添加此定義:typedef struct { volatile testset_t
在內核中有一個d_alloc函數,用於分配一個dentry的結構體並進行初始化。/** * d_alloc - allocate a dcache entry * @parent: parent of entry to al
在include/asm/system.h下有一個__cmpxchg函數:/* * Atomic compare and exchange. Compare OLD with MEM, if identical, * store NEW
在arch/blackfin/kernel/process.c中有這樣一個函數:/** This gets run with P1 containing the* function to call, and R1 containing*
在uclinux中,jiffies_64的聲明為:#define __jiffy_data __attribute__((section(".data")))extern u64 __jiffy_data jiffi
出現一個莫明奇妙的編譯錯誤:../../kernel/fork.c At end of source: : internal error: Uncaught exception Assertion failed raisedat ..
在arch/blackfin/mach-common/cache.s中,有一系列的語法差異:[Error ea5004] "../../arch/blackfin/mach-common/cache.S":126 S
在編譯arch/blackfin/kernel/reboot.c時有兩個語法錯誤:../../arch/blackfin/kernel/reboot.c [Error ea5004] "c:/temp/acc0a84d6e7