KeilMDK STM32 uCOS-II 編譯報錯:error: #268: declaration may not appear after executable statement in block
編譯包含下面代碼的文件
/*
* 函數名:Task_USART1
* 描述 : 任務創建函數
* 輸入 :*p_arg
* 輸出 : 無
*/
void Task_USART1(void *p_arg)
{
(void)p_arg;
INT8U err;
INT8U *msg;
while(1)
{
}
}
編譯結果:
..\APP\app.c(51): error: #268: declaration may not appear after executable statement in block
分析問題:
這個錯誤的原因是對于變量的聲明不能放在可執行語句后面,必須在主函數開頭聲明變量。在程序中聲明一個變量時,需要在可執行語句之前聲明,否則會出現以上錯誤。
更正代碼如下:
/*
* 函數名:Task_USART1
* 描述 : 任務創建函數
* 輸入 :*p_arg
* 輸出 : 無
*/
void Task_USART1(void *p_arg)
{
INT8U err;
INT8U *msg;
(void)p_arg;
while(1)
{
}
}
在uCOS-II中(void)p_arg;
'p_arg' 并沒有用到,防止編譯器提示警告,應該放在變量聲明之后。
上一篇:KeilMDK編譯警告:warning: #514-D
下一篇:KeilMDK編譯后輸出信息解釋
推薦閱讀
史海拾趣
隨著全球化趨勢的加速,Datatronic公司開始將目光投向國際市場。公司通過參加國際展覽、設立海外辦事處等方式,積極拓展海外市場。同時,公司還加強了與國際企業的合作,引進先進的技術和管理經驗。這些努力使得Datatronic公司在國際市場上逐漸獲得了認可,品牌影響力得到了提升。
為了確保產品質量和客戶滿意度,AK-Nord_GmbH投入大量資源建設質量管理體系。公司引入了國際先進的質量管理標準和流程,對產品的研發、生產、測試等各個環節進行嚴格把控。同時,公司還建立了完善的客戶服務體系,及時響應客戶需求和處理問題。這些舉措有效提升了公司的產品質量和客戶滿意度,為公司贏得了良好的口碑。
在電子行業競爭日益激烈的背景下,EOREX公司敏銳地洞察到智能家居市場的巨大潛力。他們及時調整戰略方向,將研發重心轉向智能家居領域,推出了一系列具有創新性和實用性的智能家居產品。同時,EOREX還積極布局全球市場,通過與海外企業的合作與交流,不斷引進先進的技術和設計理念,提升自身的競爭力。這些舉措使得EOREX在智能家居領域迅速崛起,成為行業內的佼佼者。
在市場競爭日益激烈的情況下,ARCOLECTRIC SWITCHES公司始終堅持質量至上的原則。公司建立了完善的質量管理體系,從原材料采購到生產加工、產品檢驗等各個環節都嚴格把關,確保產品質量符合客戶要求。同時,公司不斷創新升級產品,推出更加智能化、節能環保的新型開關產品,滿足市場不斷變化的需求。
隨著科技的進步,客戶對電子元器件的性能要求也越來越高。CalRamic Technologies意識到,要想在激烈的市場競爭中脫穎而出,必須不斷進行技術創新。因此,公司投入大量資源進行產品研發,特別是在陶瓷電容器領域取得了顯著的技術突破。他們開發的新型陶瓷電容器不僅體積更小,性能也更加穩定,很快就受到了市場的熱烈歡迎。
在電子行業中,技術變革日新月異,市場競爭異常激烈。面對這些挑戰,因美納始終保持著敏銳的洞察力和靈活的反應能力。公司不斷調整產品策略和市場布局,積極應對行業變革。同時,因美納還注重培養員工的創新能力和團隊協作精神,為公司的發展提供源源不斷的動力。
今天遇到一個問題,就是在Modelsim里面顯示當前的仿真的步驟,在網上查到可以這樣實現: reg [1:255*8] Message; initaial begin Message = "String1"; #10000 Message = "String2"; .... end 然后在modelsim里面把Message 的顯示 ...… 查看全部問答∨ |
|
轉載的,但是感覺寫的不錯,建議看看 你知道不合理的手機費漫游費為什么總是遲遲不能被取消嗎? 你知道手機的單向收費為什么總是遲遲不能實現嗎? 你知道雷擊事故為什么總在我們的國家頻頻造成那么多的破壞嗎? 你知道為什么這個社會富人總是常 ...… 查看全部問答∨ |
在S3c2440_intr.h中 spi0的IRQ的值是22,我用KernelIoControl將spi0的IRQ轉換成了邏輯中斷值。并與事件相關聯了,這樣只要中斷一發生,就可以調用IST函數了。 請問,這個硬件中斷是靠什么發生的呢?是靠硬件把某個腳拉低,還是怎樣?還是靠軟件用S ...… 查看全部問答∨ |
我學過c,java, 理解還可以!我想學嵌入式!曾經學過單片機,但基礎很差!有人告訴我 先從單片機學起! 我需要 買板子嗎?是不是 需要兩塊板子!一個先學單片機,一個學arm! 有沒有 一塊板子,都可以學的 ...… 查看全部問答∨ |
|
哪位高手知道這個問題: 我用IAR開發arm的程序,已有了開發板,但是無法在線調試。我沒有J-link,只有一個類似的東西 ,它與J-link的區別是與PC連接端是并口,而非USB口。因此現在無法在線調試。我聽人講在IAR的 linker中不能選擇j_link/j_track ...… 查看全部問答∨ |
|
Posted on 2007-05-13 15:59 Walzer 1、先裝Visual Studio 2005, 我拿到的是Professional Edition。最好別用DEFAULT安裝,把組件CUSTOM一下,不然會花很多冤枉的磁盤空間。WINCE600的Platform Builder不像WINCE500是獨立的,而是作為VS2005的插 ...… 查看全部問答∨ |
IAR下的Requireprototypes復選框有什么蹊蹺嗎? 編譯的時候選擇和不選擇的結果完全不一樣,不選擇的時候編譯通過,選擇的時候則提示Error[Pa045]:function "SysInit" has no prototype F:programstudyST_CM3_DEMOprojects esourcesysinit.c 6 但函數 ...… 查看全部問答∨ |