1 initialization makes pointer from integer without a cast
-> 該error多半是在做類型強轉時操作不當引起,譬如將某一地址賦值給指針變量時,如果按如下操作,則會引發該error
uint8_t *pBase = 0xf0053000
正確的寫法應當是
uint8_t *pBase =(uint8_t
*)0xf0053000
2 "BUG: scheduling while atomic"和"bad: scheduling from the idle thread"
linux內核打印錯誤的時候,通常是在中斷處理函數中調用了可以休眠的函數,如semaphore,mutex,sleep之類的可休眠的函數,
而linux內核要求在中斷處理的時候,不允許系統調度,不允許搶佔,要等到中斷處理完成才能做其他事情。因此,要充分考慮
中斷處理的時間,一定不能太久。