精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于IAR IDE創建工程程序不能運行怎么解決

麥辣雞腿堡 ? 來源:茶話MCU ? 作者:Miler ? 2023-07-22 17:27 ? 次閱讀

有人使用STM32H743芯片做應用開發,遇到個比較奇怪的事情。事情是這樣的,他使用ST公司的圖形化配置工具STM32CubeMx進行基本配置后,如果基于ARMMDK IDE創建工程并組織代碼,編譯除錯后運行一切正常。但如果他基于IARIDE創建工程并使用相同的用戶代碼時,發現程序沒法正常運行,同時還沒有任何報錯。頗為奇怪。

經進一步了解。他的代碼要實現的一個主要功能就是ADC,并利用通用DMAADC結果搬運到內存。現在最明顯的問題就是,當把IDE從MDK切換到IAR后,ADC的結果沒有被搬運到內存。借助調試可以確認,ADC外設確實啟動了、DMA配置也沒有問題,那到底怎么回事呢?兩個環境下的外設配置及用戶應用代碼是完全一樣的。

借助調試,在調試過程中無意發現了一點點差異。那就是兩個IDE分別為存放ADC結果的內存安排的地址不一樣。下面兩幅截圖來自ARMMDK和IAR環境下存放ADC結果的內存地址。

圖片

圖片

不難看到,在MDK環境下,內存地址安排在0x2400008c開始的地方,而在IAR環境下內存地址被安排在0x20000084開始的地方。難道問題就出在這個地方?

------正是!

我們先查看STMH7參考手冊,看看上面2個地址位于哪些內存區。

圖片

也就是說,IAR默認將存放ADC結果的內存安排在DTCM區,而MDK將其安排在AXISRAM區。我們可以查看手冊得知,H7系列的通用DMA1或DMA2是沒法訪問DTCM的。DTCM只能被內核或MDMA訪問。

圖片

圖片

上圖中的短橫杠表示不可訪問。原來是這樣,難怪編譯過程中沒有任何報錯提示,只是所選DMA硬件上不支持對DTCM的訪問而已。

既然知道了原因,問題就好解決了。我們可以在IAR環境里直接給定存儲地址,能讓DMA訪問到就行。或者在IAR調試環境下修改內存使用的默認地址于AXISRAM區.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    454

    文章

    50428

    瀏覽量

    421860
  • adc
    adc
    +關注

    關注

    98

    文章

    6438

    瀏覽量

    544108
  • STM32
    +關注

    關注

    2266

    文章

    10873

    瀏覽量

    354832
收藏 人收藏

    評論

    相關推薦

    警告 工程無法創建 不能編譯

    ` 出現這種警告,不能創建工程這是另一個程序,同樣的警告。但就可以創建工程--------------------------------------懵逼了這是啥情況????怎么解決.
    發表于 07-21 17:26

    如何去解決STM32CubeMx生成KEIL或IAR工程出現的問題

    和project_location后,點擊GNERATE CODE,有時候會彈出這樣的窗口:過一會兒又會提示創建工程有問題:而且我在使用CubeMx有時候可以成功地建工程,有時候又不能。通過多次不同地...
    發表于 08-24 07:31

    如何利用STM32實現跑馬燈程序創建工程

    如何利用STM32實現跑馬燈程序創建工程
    發表于 11-04 06:41

    IAR建工程的方法

    目錄一. 固件庫下載二. IAR建工程三. 工程配置一. 固件庫下載下載地址:STM32固件庫下載進入官網下載根據你stm32芯片對應的型號選擇此處我選擇的是STM32F1x系列,進入之后下載下載
    發表于 01-27 08:21

    創建STM32CUBE_IDE_工程的方法

    STM32CUBE_IDE_創建工程1、個人理解是stm32_cube_ide是集成了stm32_cube_mx和keil的功能2、簡化來講就是具有圖形化配置和代碼編輯器的功能3、下面開始正題,首先
    發表于 01-27 06:29

    Kinetis實戰開發--用IAR創建工程

    IAR 開發環境中可以使用兩種方法新建工程。一是 開發環境中可以使用兩種方法新建工程。一是 新建 創建法, 新建 創建法是在空 白
    發表于 09-25 14:52 ?31次下載

    用于創建新固件應用程序的軟件工具Keil IDE

    用于創建新固件應用程序的軟件工具Keil IDE
    發表于 06-06 08:09 ?4次下載
    用于<b class='flag-5'>創建</b>新固件應用<b class='flag-5'>程序</b>的軟件工具Keil <b class='flag-5'>IDE</b>

    keil創建工程及單片機程序執行流程

    一、單片機程序執行流程:1、startup_stm32f10x_md.s啟動系統2、system_stm32f10x.c進行系統初始化3、最后通過引導程序程序引導至主函數開始執行二、keil
    發表于 11-11 10:51 ?3次下載
    keil<b class='flag-5'>創建工程</b>及單片機<b class='flag-5'>程序</b>執行流程

    PIC16F877A 創建工程 (MPLAB X IDE @XC8)

    個軟件都默認安裝; 在MPLAB X IDE 中添加XC8編譯器(如果已經存在,則不用修改);3.創建工程注:時鐘源根據 自己的開發板選擇(芯片內部沒有時鐘源,外部一定要有時鐘電路,不然調試會出現錯誤!!!)(錯誤提示:目標器件.
    發表于 11-16 17:51 ?9次下載
    PIC16F877A <b class='flag-5'>創建工程</b> (MPLAB X <b class='flag-5'>IDE</b> @XC8)

    華大HC32-(01)-創建工程模板

    華大HC32-(01)-創建工程模板
    發表于 11-24 12:51 ?2次下載
    華大HC32-(01)-<b class='flag-5'>創建工程</b>模板

    STM32CUBE_IDE_創建工程

    STM32CUBE_IDE_創建工程1、個人理解是stm32_cube_ide是集成了stm32_cube_mx和keil的功能2、簡化來講就是具有圖形化配置和代碼編輯器的功能3、下面開始正題,首先
    發表于 12-03 15:21 ?9次下載
    STM32CUBE_<b class='flag-5'>IDE</b>_<b class='flag-5'>創建工程</b>

    STM32CubeMX 創建工程模板

    STM32CubeMX 創建工程模板
    發表于 12-08 20:06 ?20次下載
    STM32CubeMX <b class='flag-5'>創建工程</b>模板

    初識CCS,創建工程、選擇芯片、簡單調試及燒錄

    本篇文章,主要面向初次接觸CCS的朋友,你可以學到:如何創建工程及選擇芯片如何燒錄程序如何調試程序如何創建工程及選擇芯片點擊File->New->CCS Project
    發表于 12-16 16:56 ?24次下載
    初識CCS,<b class='flag-5'>創建工程</b>、選擇芯片、簡單調試及燒錄

    程序換個IDE就不運行了?

    ,編譯除錯后運行一切正常。但如果他基于IAR IDE創建工程并使用相同的用戶代碼時,發現程序沒法正常運行
    的頭像 發表于 07-24 15:30 ?644次閱讀
    <b class='flag-5'>程序</b>換個<b class='flag-5'>IDE</b>就不<b class='flag-5'>運行</b>了?

    【從0開始創建AWTK應用程序創建應用程序并在模擬器運行

    AWTK是基于C語言開發的跨平臺GUI框架。本系列文章介紹如何從0開始創建AWTK應用程序,包括搭建開發調試環境、使用AWTK創建Hello工程并在模擬器上
    的頭像 發表于 12-01 08:24 ?469次閱讀
    【從0開始<b class='flag-5'>創建</b>AWTK應用<b class='flag-5'>程序</b>】<b class='flag-5'>創建</b>應用<b class='flag-5'>程序</b>并在模擬器<b class='flag-5'>運行</b>