來源:strongerHuang
最近看到有一些網(wǎng)友在討論關(guān)于:瑞薩RA單片機(jī)在e2 studio環(huán)境下printf編譯出錯(cuò)的問題。
這個(gè)問題我之前也遇到過,今天就來分享一下我得出的解決辦法。
問題點(diǎn):在e2 studio集成開發(fā)環(huán)境下,使用串口printf打印時(shí),會(huì)類似出現(xiàn)一個(gè)這樣的錯(cuò)誤:
C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe:C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v8-m.main+dp/hardlibg_nano.a(libc_a-closer.o):infunction `_close_r'(.text._close_r+0xc): undefined reference to `_close' C:/Renesas/RA/e2studio_ -10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe:C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v8-m.main+dp/hardlibg_nano.a(libc_a-lseekr.o):infunction `_lseek_r'(.text._lseek_r+0x10): undefined reference to `_lseek' C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe:C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v8-m.main+dp/hardlibg_nano.a(libc_a-readr.o):infunction `_read_r'(.text._read_r+0x10): undefined reference to `_read' C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe:C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v8-m.main+dp/hardlibg_nano.a(libc_a-fstatr.o):infunction `_fstat_r'(.text._fstat_r+0xe): undefined reference to `_fstat' C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld.exe:C:/Renesas/RA/e2studio_v2024-10_fsp_v5.6.0/toolchains/gcc_arm/13.2.rel1/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v8-m.main+dp/hardlibg_nano.a(libc_a-isattyr.o):infunction `_isatty_r'(.text._isatty_r+0xc): undefined reference to `_isatty' collect2.exe: error: ld returned1exit status make:***[makefile:96:RA8D1_DEBUG.elf]Error1 BuildFailed.6errors,0warnings. (took 190ms)左右滑動(dòng)查看全部
網(wǎng)上最多的解決辦法
在這個(gè)路徑下:
項(xiàng)目->C/C++Project Settings->C/C++構(gòu)建->設(shè)置->GUU ArmCrossC Linker->Miscellaneous
左右滑動(dòng)查看全部
勾選【Use float with nano printf (-u _ printf float)】這個(gè)選項(xiàng),并清空【Other linker flags】里面的內(nèi)容。
但是,在e2 studio V5版本(比如:V5.6.0)環(huán)境下,這個(gè)解決方法“失效”了,編譯還是會(huì)出現(xiàn)【錯(cuò)誤】。
網(wǎng)上又有了一種解決辦法
在同樣的路徑下,勾選【Do not use syscalls (--specs=nosys.specs)】這個(gè)選項(xiàng),如下圖:
這樣,確實(shí)能解決【編譯出錯(cuò)】的問題,也能正常printf打印輸出。
但會(huì)出現(xiàn)【警告】,如下圖:
還有一種最理想的解決辦法
這個(gè)辦法不會(huì)錯(cuò)誤,也不會(huì)警告,也是我在用。那就是在同樣的路徑下,【Other linker flags】這里添加:
--specs=rdimon.specs
警告這樣的配置之后,編譯就會(huì):0錯(cuò)誤,0警告。
這里的配置,在e2 studio以前的老版本是默認(rèn)的,但這后面的版本,這里的配置默認(rèn)是“空”了,我也搞不懂為啥。
這個(gè)解決辦法在網(wǎng)上不容找到,我找到了一個(gè)地方:
https://community.renesas.com/mcu/ra/f/forum/32521/fsp5-0-0-cannot-print-data-to-uart-by-redirecting-printf
以上三種解決辦法,推薦用最后一種。
本文就分享到這里,希望對(duì)你有所幫助。
-
單片機(jī)
+關(guān)注
關(guān)注
6065文章
44939瀏覽量
647872 -
瑞薩
+關(guān)注
關(guān)注
36文章
22373瀏覽量
87821 -
串口
+關(guān)注
關(guān)注
14文章
1586瀏覽量
79211 -
Studio
+關(guān)注
關(guān)注
2文章
207瀏覽量
29560 -
Printf
+關(guān)注
關(guān)注
0文章
84瀏覽量
14144
原文標(biāo)題:e2s開發(fā)環(huán)境下串口printf編譯出錯(cuò)問題解決方案
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
瑞薩RA8快速上手指南:Cortex-M85內(nèi)核瑞薩RA8開發(fā)環(huán)境搭建 并點(diǎn)亮一個(gè)LED

瑞薩e2studio(1)----瑞薩芯片之搭建FSP環(huán)境
【瑞薩RA2系列開發(fā)板體驗(yàn)】+E2環(huán)境搭成配置報(bào)錯(cuò)
rtthread studio編譯瑞薩RA4M2芯片時(shí)出錯(cuò)怎么解決?
瑞薩e2studio(11)----打印函數(shù)(printf、 sprintf)的實(shí)現(xiàn)

瑞薩e2studio----打印函數(shù)(printf、sprintf)的實(shí)現(xiàn)

評(píng)論