色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

x
x
查看: 12552|回復(fù): 14
打印 上一主題 下一主題

[提問(wèn)] 高手請(qǐng)進(jìn)!ARM嵌入式開(kāi)發(fā)中GNU環(huán)境printf 重定向串口!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2009-6-27 18:10:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: arm , GNU , printf , 串口 , 嵌入式
找了一下GOOGLE ,竟發(fā)現(xiàn)這個(gè)問(wèn)題難倒不少人,網(wǎng)絡(luò)上好象找不到答案,不知道社區(qū)的實(shí)力如何?即管發(fā)此問(wèn)題貼,合大家之力,希望能夠解決。
沙發(fā)
發(fā)表于 2009-6-27 18:39:51 | 只看該作者
啟動(dòng)kernel時(shí)候指定終端是串口,就全定向到串口了。
板凳
發(fā)表于 2009-6-27 20:17:27 | 只看該作者
哈哈,同意ls,移植的時(shí)候不是要指定終端的嗎?

指定串口不就可以了
地板
 樓主| 發(fā)表于 2009-6-27 20:46:47 | 只看該作者
那是帶OS的用法,現(xiàn)在要?jiǎng)內(nèi)S 直接用,也就是象以下這段的代碼就必需打到串口去,
int main (void)
{
printf("Hello World\n");     //這樣怎么重定位?默認(rèn)輸出是stdout.
}
地下室
發(fā)表于 2009-6-27 21:39:39 | 只看該作者
我說(shuō)不可能這么簡(jiǎn)單
原來(lái)是下個(gè)套

看來(lái)是有準(zhǔn)備的
6
發(fā)表于 2009-6-27 21:50:41 | 只看該作者
我沒(méi)這么用過(guò),但是想出來(lái)一個(gè)方法
那就是改printf函數(shù),不用本來(lái)的glibc的函數(shù)原型,將printf函數(shù)寫(xiě)成一個(gè)簡(jiǎn)短的串口驅(qū)動(dòng)形式
這樣可以不?
7
 樓主| 發(fā)表于 2009-6-27 22:01:38 | 只看該作者
俺查看了WINARM  中帶有的所有例程,WINARM是用 GNU工具鏈的arm-elf-gcc 編譯,用的是newlib 庫(kù)(嵌入式專用庫(kù)),WINARM中帶有的所有例程,竟沒(méi)有提到printf 重定向的例程,對(duì)于使用這個(gè)重定向,作者給人的感覺(jué)要么就說(shuō)這個(gè)太簡(jiǎn)單!還用給例程嗎?要么就真是有點(diǎn)難度?
8
 樓主| 發(fā)表于 2009-6-27 22:09:04 | 只看該作者
RE:名人,為什么要花力氣搞懂這個(gè)printf的定向? 搞通這個(gè)是為以后測(cè)試開(kāi)源代碼做準(zhǔn)備,總不可能把別人寫(xiě)的printf 全改成自已的啊,這樣會(huì)累壞人的,改一兩個(gè)絕對(duì)可以,如果很多,人會(huì)瘋的。

所以printf 的定向問(wèn)題是必需擺平搞定的!
9
發(fā)表于 2009-6-27 22:31:09 | 只看該作者
俺查了一個(gè)叫“都江的DIY OS for ARM” 的用的是arm-elf-gcc  一大堆的源碼中竟同樣沒(méi)有用到printf 重定向串口的用法,國(guó)內(nèi)研究這個(gè)問(wèn)題的深度由此可見(jiàn)一斑!
10
發(fā)表于 2009-6-27 22:59:02 | 只看該作者
RE:名人,為什么要花力氣搞懂這個(gè)printf的定向? 搞通這個(gè)是為以后測(cè)試開(kāi)源代碼做準(zhǔn)備,總不可能把別人寫(xiě)的printf 全改成自已的啊,這樣會(huì)累壞人的,改一兩個(gè)絕對(duì)可以,如果很多,人會(huì)瘋的。

所以printf 的定向問(wèn) ...
潛艇8421 發(fā)表于 2009-6-27 22:09


加一個(gè)宏定義,OK了…不用改
然后寫(xiě)自己的printf就不哦了?
11
發(fā)表于 2009-6-27 23:34:46 | 只看該作者
會(huì)產(chǎn)生沖突,編譯不可能通過(guò)的,就算能通過(guò)編譯,能正常工作嗎?
12
發(fā)表于 2009-6-27 23:40:03 | 只看該作者
我看很多都用類(lèi)似XX_printf函數(shù)調(diào)試,等os完畢了再使用printf函數(shù)
偶不太理解飛船要搞什么東東
13
發(fā)表于 2009-6-27 23:53:41 | 只看該作者
本帖最后由 宇宙飛船 于 2009-6-27 23:58 編輯

8位機(jī)WINAVR 中有一個(gè)專門(mén)打開(kāi)設(shè)備的函數(shù)---fdevopen( 自定串口函數(shù))。然后就把stdout重定向到串口了。 這樣可以正常使用printf 的各種功能。用C無(wú)非就是看中豐富的庫(kù)函數(shù)。printf是功能最強(qiáng)勁的一個(gè),因此作為使用C語(yǔ)言的MCU開(kāi)發(fā)者是很有必要搞懂printf的使用。
14
發(fā)表于 2009-6-27 23:59:51 | 只看該作者
還有就是__FILE__,__LINE__選項(xiàng)

Linux下調(diào)試也就這個(gè)方法了,gdb應(yīng)用有限
15
發(fā)表于 2010-7-26 10:23:31 | 只看該作者
太強(qiáng)了

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表