簡體   English   中英

在嵌入式C中使用printf

[英]Use printf in embedded c

我在Eclipse上使用Aurix微控制器工作,我需要在控制台上顯示未簽名的char值,我確實這樣做了

  printf ("% hhx", tab [j]);

但是我有這個錯誤:

  error: AppKit_TC277TFT_TimeDemo.elf section `.inttab' will not fit in 
  region `PMI_PSPR'

  error: region `PMI_PSPR' overflowed by 16788 bytes

有沒有人可以幫助我

在著名的搜索服務中搜索PMI_PSPR Aurix會彈出此論壇帖子

顯然,您正在鏈接代碼以從RAM運行。 更改鏈接器設置以將其鏈接到Flash,然后從那里運行。

在嵌入式C中使用printf

一種方法是使用UART通信。

將數值轉換為可打印的ascii格式並發送到UART,以便控制台上可以看到。

對於簡單的應用程序,您可以考慮將可打印字符存儲到某個數組緩沖區,並在活動結束時將數組緩沖區打印到UART

首先嘗試找出原因。 有兩種想法:

  1. 檢查stdout流是否起作用。
  2. 檢查是否存在內存問題(錯誤提示)。

1. stdout檢查:

嘗試不使用printf格式化程序而使用stdout流。 格式化程序因人們的建議而腫,在嵌入式系統上通常不是一個好主意。 另外,您是否設置了stdout流的位置(它是否已映射到某些UART代碼,通常在嵌入式系統上您需要編寫或配置此代碼)? 使用putch('。'),putchar('。')甚至puts(“ Hello”)進行測試。

2.內存檢查:

嘗試構建不使用stdout即可單獨使用sprintf()的代碼。 如果那也沒有建立,那很可能是格式化程序。 一些嵌入式編譯器允許將格式程序庫配置為較小的選項,以解決此問題(不支持完整的實現)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM