久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > GNU ARM匯編--(十五)linux下的printascii

GNU ARM匯編--(十五)linux下的printascii

作者: 時間:2016-11-26 來源:網絡 收藏
在前面對很多s3c2440的功能模塊進行學習后,已經具備了將這些模塊綜合起來的條件,基于此,將前面的代碼綜合成一個簡單的bootloader.自己寫的bootloader在引導kernel的時候,串口輸出只有Uncompressing Linux...和done, booting the kernel。串口有這個輸出,說明kernel被正確引導了,但是串口有問題。

這篇blog只是分析解決這個問題的第一步:

本文引用地址:http://cqxgywz.com/article/201611/321716.htm

既然"Uncompressing Linux..."這句打印是kernel代碼中的,那kernel的其他打印怎么沒有?

在archarmootcompressed目錄下的misc.c中,上面的打印是在decompress_kernel函數中,而該函數是在kernel的初始匯編中調用的,也就是說這個時候kernel的串口驅動肯定是沒有工作的,那這里的串口輸出只能是用bootloader初始化好的串口,

putstr("Uncompressing Linux...");

putstr(" done, booting the kernel.");

[html]view plaincopy
  1. staticvoidputstr(constchar*ptr)
  2. {
  3. charc;
  4. while((c=*ptr++)!=