日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32(Cortex-M3)开发,RVDS和MDK谁优谁劣?

發布時間:2025/3/18 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32(Cortex-M3)开发,RVDS和MDK谁优谁劣? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前針對Cortex-M3的開發示例大都以MDK的工程來提供,所以MDK更適合Cortex-M3的開發才對,難到幾萬元的RVDS其開發表現不如萬元左右的MDK開發工具嗎,實際情況又如何呢?

開發板:EM-STM3210E 和 EM-STM3210E-EVAL

CPU:STM32F103ZE

目標源碼:Microsoft .Net Micro Framework v4.0 for Cortex-M3

一、編譯

  • UINT32?SUPPORT_ComputeCRC(?const?void*?rgBlock?,int?????????nLength?,?UINT32??????crc) ?
  • ?
  • { ?
  • ?
  • ????const?UINT8*?ptr?=?(const?UINT8*)rgBlock; ?
  • ?
  • ????while(nLength--?>?0) ?
  • ?
  • ????{ ?
  • ?
  • ????????crc?=?c_CRCTable[?((crc?>>?24)?^?(*ptr++))?&?0xFF?]?^?(crc?<<?8); ?
  • ?
  • ????} ?
  • ?
  • ????return?crc; ?
  • ?
  • } ?
  • ?
  • 編譯模式
    ?Debug
    ?Release
    ?RTM
    ?
    MDK
    ?RAM
    ?正常
    ?異常
    ?異常
    ?
    FLASH
    ?正常
    ?異常
    ?異常
    ?
    RVDS
    ?RAM
    ?異常
    ?正常
    ?異常
    ?
    FLASH
    ?異常
    ?異常
    ?異常
    ?

    ?

    所謂異常,其實問題很簡單,就是CRC計算的代碼出了問題,相關代碼如下:

    ?在出現異常的版本中,代碼運行到crc = c_CRCTable[ ((crc >> 24) ^ (*ptr++)) & 0xFF ] ^ (crc << 8);時,程序即出現異常,并且是rgBlock地址在外擴SRAM或片內FLASH時才出現這個問題,有時執行多個循環才會出現這種情況(為了鎖定和捕捉該錯誤,花了我許久的時間才定位到此處)。STM32F103ZE包含CRC計算功能,但是以4個字節為計算單位,所以不太適用。

    從以上表現來看,MDK和RVDS的編譯結果還是有比較大的區別的,所以建議嵌入式開發者要多測試幾款工具,才能真正定位自己的問題。

    二、調試

    由于目前EM-STM3210E 和 EM-STM3210E-EVAL開發板并沒有提供一款直接初始化片外SRAM的軟件,所以要調試RAM版本的程序,MDK或RVDS都需要編寫調試腳本,用MDK調試Cortex-M3和調試ARM9或ARM7平臺一樣,直接調試即可。但是用RVDS調試卻有不同,為了能正常調試,還是費了不少周折的。

    ?

    ?

    在用RVDS調試Cortex-M3時,要確保上圖所示的 [State]中的“t”為“T”。

    有意思的是,這個選項和BOOT的啟動選項有很大關系,如果設為“系統啟動”模式,則上圖的“t”自動為“T”,可以直接進行調試,其它兩種模式“用戶啟動”和“RAM啟動”都默認為“t”,需要手動切換為“T”。

    此外RVDS顯示的指令地址有些問題(最低位并不為1),而MDK卻一切正常。

    三、其它

    ?

    ?


    ARM開發板,其中基于STM32F103ZE CPU的開發板有三款

    ?

    從我目前的調試經驗來看,如果調試基于ARM7或ARM9的開發板,RVDS還是非常強大的,不過如果要調試基于Cortex-M3的開發板(特別是STM32系列),我倒是建議采用MDK來進行調試,不僅價格便宜,綜合表現也不錯。

    ??? 最近一段時間,.Net Micro Framework for Cortex-M3除了USB驅動移植成功外,還開發了一個輕量級TinyGUI,在低內存的Cortex-M3開發板上有不俗的表現,我在后續的博文中會進行相關的介紹。

    ?

    ?






    本文轉自yefanqiu51CTO博客,原文鏈接:http://blog.51cto.com/yfsoft/321208,如需轉載請自行聯系原作者

    總結

    以上是生活随笔為你收集整理的STM32(Cortex-M3)开发,RVDS和MDK谁优谁劣?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。