国产毛片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
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线亚洲黄色 | 亚洲精品天堂在线 | 国产成人亚洲精品 | 亚洲一区二区在线成人 | 91麻豆精品激情在线观看最新 | 四虎影视在线观看2022a | 日韩久久精品一区二区三区 | 国产精品极品美女自在线观看免费 | 99热免费观看 | 手机在线观看精品国产片 | 91成人在线观看视频 | 日韩精品一 | 中文有码视频 | 国产精品毛片大码女人 | 996热在线视频 | 超级极品白嫩美女在线 | 91青青视频 | 日韩一区二区视频 | 久久国产精品二区99 | 视频一区二区三区在线观看 | 国产a毛片清高视频 | 亚洲欧美v国产一区二区 | 国产香蕉尹人视频在线香蕉视 | 欧美日韩性视频一区二区三区 | 无限免费观看下载在线 | 四虎影视国产永久免费 | 国产免费黄色片 | 国产福利一区二区三区 | 日韩无砖专区体验区 | 国产色婷婷精品综合在线观看 | 四虎8848精品永久在线观看 | 久久久久国产精品免费网站 | 成人激情站 | 99热久| 五月天婷色 | 一级片在线免费看 | 国产高清在线免费观看 | 中文毛片无遮挡高清免费 | 人人九九精| 精品视频在线观看一区二区 | a久久久久一级毛片护士免费 |