在vxworks下移植oss庫,其實只要根據linux的編譯信息,移植下來一般沒有問題
但是要運行的話,就需要花點時間調試了,比如oss_hdaudio驅動。
下面將移植時遇到的問題列下來
1.reset_controller函數 Controller not ready
原因是oss_udelay函數是空的,reset_controller是需要時間的。
2. attach_codec: Codec #%d is not physically present
static codec_t NULL_codec = { 0 }; /* TODO: Temporary workaround - to be removed */
系統不知道爲什麼讀寄存器會找不到,然後我直接給系統賦值alc888
{0x10ec0888, "ALC888", VF_ALC88X_HACK, (char **) &alc883remap}
根本解決方法請看第4條。
3. usrAppInit和shell運行同一個函數執行結果不同
shell運行的函數優先級高,假如函數有類似死循環等待的情況,usrAppInit就會執行失敗。
使用taskSpawn起來一個任務,但是系統會重啓。將堆棧分配大一點就不會出現重啓了。
4. oss_hdaudio驅動時好時壞
這是由於分配的內存數據是亂的,需要初始化分配的內存數據
#if 0
#define KERNEL_MALLOC(nbytes) malloc(nbytes)
#else
#define KERNEL_MALLOC(nbytes) calloc(1, nbytes)
#endif