久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8569|回復: 0
打印 上一主題 下一主題
收起左側

解放串口之重定向printf輸出到IAR虛擬終端

[復制鏈接]
跳轉到指定樓層
樓主
ID:82781 發表于 2015-6-24 16:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      通過串口打印調試信息或者實現上下位機交互是我們最常使用的調試手段之一,畢竟實現起來無論是硬件成本(接出兩根線Txd和Rxd,外加一個電平轉換芯片)還是軟件成本(下位機寫好UART驅動,上位機直接超級終端或者一些第三方串口調試助手)都是相對較低的,所以這種方式還是灰常受廣大“攻城師”們歡迎的。不過如果由于I/O資源緊缺串口被用做其他用處或者板子直接沒有引出串口的話(是不是產生共鳴了,呵呵),那該怎么辦呢?


當然,所謂時代不同了(liao)(我咋順口想說“男女都一樣呢”,呵呵,哎,都是生在舊社會長在紅旗下的孩子。,隨著嵌入式開發生態系統越來越完善,目前也是有越來越多的Poweful開發工具支持豐富的調試功能(支持打印調試信息和交互等),但是涉及到一些版權的問題價格上還是有點小貴的(對一些小企業來說還是難以接受的),所以這個時候就需要我們動動腦筋去摸索摸索其他的方法(所謂路是探索出來的),事實證明破釜沉舟下人的潛力是無限的,呵呵,這里就分享一個折衷的辦法去解決大家一直苦惱的問題,即使用IAR虛擬的串口終端來實現信息的交互和打印,下面進入正題:

測試平臺:IAR6.6 + FRDM KE02開發板(我目前手里有就拿這個了,其他板子都可以放心用的,呵呵)

測試代碼:KE驅動庫(KEXX_DRIVERS_V1.0.1_DEVD\kexx_drv_lib_release_r1.0.1\build\iar\ke02\platinum)

這里稍微提一句,我測試的是KE驅動庫的代碼,但是實際上只要你看懂了我下面的解決方法(授之以漁而不是魚),其他代碼都是類似的。

1)打開KE02 platinum的IAR工程,進入到platinum.c文件,找到main函數如下圖1,可以看到其調用了printf打印函數,而該工程是默認調用底層串口的,我們跳轉到該函數的定義如圖2,再繼續跳轉到out_char的函數定義如圖3,這下就屢清楚了,我們可以很直觀的看到工程默認是調用UART底層的,呵呵,下面我們就要動手改造它對printf進行重定向;




2)首先我們需要注釋掉printf的實現函數,將其屏蔽掉,然后需要給printf一個重新指向的地址,下面就該我們常見的這位老兄出場了(貌似當初自打我開始接觸Turbo C的時候就已經用到它了,老生常談的“Hello world”就是調用它內部的printf來實現的)。我們找到Common.h文件,將添加到其中,如下圖,這樣凡是需要printf的文件只需要添加common.h頭文件即可:


3)這里先說說stdio.h文件的作用,我們打開stdio.h文件可以看到其內部定義了標準輸入輸出函數,包括我們常見的scanf和printf等函數,而這些函數所調用的底層即為IAR提供的鏈接到其Terminal的驅動,所以……懂的,呵呵。除此之外,我們肯定不滿足只輸出打。ńo人略顯低端的趕腳有木有),所以為了體現我們不是“土豪”,我覺著有必要讓它交互起來,實現真正的串口功能(因為一些類似bootloader之類的還是需要輸入參數的),我在main函數添加了scanf語句用來測試輸入功能,如下:


4)準備工作就緒,編譯鏈接整個工程,然后下載到KE02的板子中并進入到Debug調試環境中,點擊View->Terminal I/O調出虛擬終端,然后全步運行,就可以看到Terminal下開始打印調試信息,如下。當然顯示輸出有點小case了,我們再試試輸入功能,在input框中輸入‘a’,然后回車,如下圖,perfect:



5)還沒完,我們要玩就玩高端大氣上點檔次的,我們再探索探索呢,結果又發現個小驚喜,我們點擊上圖右下角的“Input Mode”,彈出設置框如下,很高端啊有木有:


呼,終于寫完了,呵呵,看完之后是不是有種躍躍欲試的興奮呢,哈哈,enjoy it~

未完待續~



附件為我修改好的工程,僅供參考:

KE Driver platinum.zip (194.69 KB, 下載次數: 24)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 五月婷亚洲 | 成人在线免费观看 | 亚洲一区二区三区四区视频 | 国产成人精品一区二区三区 | 国产精品国产三级国产aⅴ入口 | 国产精品欧美日韩 | 国产免费xxx | 91原创视频 | 久久亚洲一区二区 | 奇米视频777 | 日日做夜夜爽毛片麻豆 | 久久99视频 | 欧美a区| 高清国产一区二区 | 日韩成人中文字幕 | 狠狠伊人 | 成人日韩 | 麻豆91精品91久久久 | www312aⅴ欧美在线看 | 久草在线 | 欧美日韩国产中文 | 三级视频在线观看电影 | 日韩超碰 | av小说在线| 国产精品一区二区久久 | 黑人巨大精品欧美一区二区一视频 | 久久精品无码一区二区三区 | 日韩一区二区三区在线观看 | 日韩网站在线观看 | 亚洲免费一区二区 | 国产特级毛片aaaaaa喷潮 | 国产亚洲网站 | 一区二区三区免费 | 久久久久久免费毛片精品 | 在线视频一区二区三区 | 91视频免费黄 | 一本在线 | 日本午夜视频 | 精品久久久久久亚洲精品 | 国产999精品久久久久久 | 欧美日韩一区二区在线观看 |