国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

嵌入式軟件開發之: 調整C庫使其適應目標硬件

發布時間:2015-11-12 11:15    發布者:designapp
關鍵詞: 嵌入式 , C庫 , Semihosting
  13.3 調整C庫使其適應目標硬件
  默認情況下,C庫利用semihosting機制來提供設備驅動級的功能,使得主機能夠用作輸入和輸出設備。這種機制對于嵌入式開發十分有用,因為用于開發的硬件系統通常沒有最終系統的輸入和輸出設備。
  本節介紹如何重定向代碼中的Semihosting庫函數,使其真正適用目標系統。
  13.3.1 C庫函數重定向
  所謂C庫函數重定向,就是用戶使用自己編寫的函數代碼代替C庫中的函數,使最終程序更適用于實際的目標硬件。圖13.6顯示了C庫函數重定向的過程。
  


  圖13.6 C庫函數重定向
  最簡單的函數重定向的例子就是用戶希望fputc()函數能夠將字符從目標系統的串口輸出而不是在調試時將字符從調試器的控制臺輸出。這時就需要重新實現該函數。下面的例子將fputc()的輸入字符參數重新指向一連續輸出函數sendchar(),將該例在一個獨立的源文件中實現的。這樣,fputc()在依目標而定的輸出和C庫標準輸出函數之間充當一個抽象層。
  例子程序的代碼如下所示。
  extern void sendchar(char *ch);
  int fputc(int ch, FILE *f)
  { /* 向UART寫一個字符 */
  char tempch = ch;
  sendchar(&tempch);
  return ch;
  }
  13.3.2 從最終代碼映像中去掉Semihosting
  在一個實際的應用程序中,不可能支持Semihosting的SWI操作機制。因此,必須在最終的代碼映像中去掉C庫中的Semihosting函數。
  為確保最終映像文件中沒有鏈接Semihosting的SWI的函數,必須引入符號__use_no_semihosting_swi。使用方法如下所示。
  · 在C模塊中,使用#pragma命令:
  #pragma import(__use_no_semihosting_swi)
  · 在匯編語言模塊中,使用IMPORT命令:
  IMPORT __use_no_semihosting_swi
  如果在程序中引入了__use_no_semihosting_swi,但最終映像仍鏈接了Semihosting庫,鏈接器會報告如下錯誤:
  Error: L6200E: Symbol __semihosting_swi_guard multiply defined (by use_semi.o and use_no_semi.o)。
  為幫助找出這些使用了Semihosting的函數,可以使用-verbose鏈接選項。這樣,在輸出結果中,C庫函數將被標以__I_use_semihosting_swi的標記。下面這段鏈接器的輸出顯示了使用-verbose鏈接選項后的結果。
  Loading member sys_exit.o from c_a__un.l.
  definition: _sys_exit
  reference : __I_use_semihosting_swi
  這時,要使程序正確執行,用戶必須為標記了的函數提供自己的實現方法。
  注意鏈接器不會報告應用程序代碼中的任何使用Semihosting SWI 的函數。只有當從 C 庫鏈接了使用Semihosting SWI 的函數時才發生錯誤。
                               
               
本文地址:http://m.qingdxww.cn/thread-156234-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人手机视频 | 国产午夜在线观看 | 99热精品国产三级在线观看 | 欧美大片免费在线观看 | 日本亚洲欧美在线 | 阿v精品一区二区三区 | 91观看视频 | 久久国产亚洲 | 99在线热视频只有精品免费 | 亚洲国产成人精品91久久久 | 幻女free性zozo| 91香蕉视频在线观看免费 | 亚洲天堂日韩在线 | 日韩a无吗一区二区三区 | 午夜在线网站 | 日本不卡在线观看 | 要爽死国产一区在线播放 | 亚洲免费在线视频观看 | 日本欧美一区二区三区视频麻豆 | 四虎性 | 日韩国产在线 | 日韩不卡视频在线 | 亚洲精品一二区 | 欧美成人三级网站 | 99re6在线播放 | 91热视频在线观看 | 又粗又硬又猛又黄的免费视频黑人 | 天堂地址在线3d区 | 欧美视频高清在线观看 | 男人天堂视频网 | 欧美日日操 | 久久伊人精品青青草原高清 | 日日摸夜夜 | 国产成人午夜91精品麻豆剧场 | 特级毛片aaaa级毛片免费 | 国产成人一区二区三区高清 | 国产青草视频在线观看免费影院 | 在线观看国产精品麻豆 | 日日日夜夜操 | 国产精品免费一区二区三区 | 香蕉视频网站免费观视频 |