在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

MCU之SWM在KEIL環境中實現代碼在RAM中運行

ELEXCON深圳國際電子展 ? 來源:華芯微特 ? 2023-03-16 15:53 ? 次閱讀

MCU的實際使用過程中,我們一般會將程序放在FLASH中運行,但有時候需要同時操作falsh或者需要更好的實時性,程序運行的速度更快,這時我們就可以將這代碼放到RAM中運行。

將代碼放在RAM中又可以分為將.C文件放入RAM中以及將部分函數放在RAM中。

在這里我們以SWM190為例給大家簡單介紹一下在KEIL環境中如何讓程序運行在RAM上。

SWM190

KEIL環境實現將.C文件在RAM中

運行操作方法

以SWM190為例,我們打開SYNWIT公司提供的普通的GPIO工程,編譯后查看映射文件(.MAP文件)來查看文件位置。

我們先來看GPIO例程的主要函數,如下圖:

edd07b40-c3cd-11ed-bfe3-dac502259ad0.png

接著通過MAP文件看main.c文件在falsh中運行的情況,如下圖可以看出main.c文件編譯后的地址在以0x00000000為首地址的flash中:

edf3965c-c3cd-11ed-bfe3-dac502259ad0.png

將文件放在RAM中常用的方法有兩種,我們以將main.c文件放到RAM中為例:

方法一

快速將.c文件放入RAM

1、點擊APP中的想要放置在RAM中的文件,右鍵然后單擊煙花棒(OptionsforFile‘main.c’)

edfded82-c3cd-11ed-bfe3-dac502259ad0.png

2、點擊Code/Const,選擇IRAM1[0x20000000-0x20004FFF]

ee22d142-c3cd-11ed-bfe3-dac502259ad0.png

3、點擊OK按鈕并編譯

ee35f57e-c3cd-11ed-bfe3-dac502259ad0.png

4、此時可以看到main.c文件上有個*,意味著我們已經成功將main.c文件放在了RAM中

ee4daba6-c3cd-11ed-bfe3-dac502259ad0.png

也可通過查看.map文件確認main.c文件的位置,如下圖所示,可以看出來main文件的地址變為0x20000000開始的RAM地址。

ee6d6b6c-c3cd-11ed-bfe3-dac502259ad0.png

方法二

修改.cst文件

1、在取消勾選Use Memory Layout Form Target Dialog后會出現出現一個.sct文件,點擊Edit可直接對該文件進行修改。

ee7ff5c0-c3cd-11ed-bfe3-dac502259ad0.png

打開文件后內容如下:

ee9667e2-c3cd-11ed-bfe3-dac502259ad0.png

2、在.sct文件中,將main.o放在RW_IRAM1執行區域(0x20000000-0x00002000),修改后如下:

eeb9d51a-c3cd-11ed-bfe3-dac502259ad0.png

3、點擊編譯按鈕,編譯器會自動將main.c文件放到RAMCODE所在0x20000000開始的區域,結果如下圖所示,main文件的地址變為0x20000000開始的RAM地址。

eecf6402-c3cd-11ed-bfe3-dac502259ad0.png ? ? ? ? ? ? ? ? ? ? ? ?

SWM190

在KEIL環境實現將部分函數放在

RAM中運行操作方法

我們仍然以SWM190為例,我們打開SYNWIT公司提供的普通的GPIO工程,將while1中的函數封裝成KeyScan函數,如下圖:

f0ea5274-c3cd-11ed-bfe3-dac502259ad0.png

編譯后可以通過查看MAP文件來看KeyScan函數的位置,如下圖可以看出來KeyScan函數編譯后的地址在flash中:

edf3965c-c3cd-11ed-bfe3-dac502259ad0.png

然后我們將KeyScan函數放到RAM中,操作如下:

1、與之前一樣,在取消勾選Use Memory Layout Form Target Dialog后會出現一個.sct文件,點擊Edit可直接對該文件進行修改,也可以將此文件拷貝到APP目錄下(防止刪除out目錄下內容時誤刪*.sct文件),然后再進行修改。

f11cff9e-c3cd-11ed-bfe3-dac502259ad0.png

2、需要定位到RAM中的KeyScan函數添加前綴

方法一

用#pragma arm section code = “PlaceInRAM”和#pragma arm section將需要放到SRAM中的程序包括起來;

f12ba0c6-c3cd-11ed-bfe3-dac502259ad0.png

打開文件后內容如下:

方法二

在需要放到RAM中的函數前,用__attribute__((section("PlaceInRAM ")))聲明該函數放在PlaceInRAM section中。

f13daf3c-c3cd-11ed-bfe3-dac502259ad0.png

3、在.sct文件中,定義一個PlaceInRAM的section,放在RW_IRAM1執行區域(0x20000000-0x00002000)。

修改內容如下圖所示:

f14e7254-c3cd-11ed-bfe3-dac502259ad0.png

4、點擊編譯按鈕,編譯器會自動將KeyScan函數放到RAMCODE所在0x20000000開始的區域,結果如下圖所示,KeyScan函數的地址變為0x20000000開始的RAM地址。

f15f11f4-c3cd-11ed-bfe3-dac502259ad0.png

以上是本次介紹的將代碼放到RAM的操作方法,如果SWM芯片用戶想更多了解SWM芯片信息請聯系華芯微特技術人員。

審核編輯:湯梓紅

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

    關注

    146

    文章

    17741

    瀏覽量

    358601
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1386

    瀏覽量

    116484
  • 函數
    +關注

    關注

    3

    文章

    4365

    瀏覽量

    63916
  • keil
    +關注

    關注

    69

    文章

    1218

    瀏覽量

    168647
  • 代碼
    +關注

    關注

    30

    文章

    4882

    瀏覽量

    70061

原文標題:elexcon2023展商 | MCU之SWM在KEIL環境中實現代碼在RAM中運行

文章出處:【微信號:ELEXCON深圳國際電子展,微信公眾號:ELEXCON深圳國際電子展】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    STM8RAM運行遇到的疑問求解

    IAR for STM8 的環境,我把一段代碼用 #pragma location=\"MY_RAM_FUNC\" copy到RAM
    發表于 05-07 07:32

    芯海通用 MCU 應用筆記: MDK 開發環境代碼重定向到 RAM 執行的幾種方法

    。對于多數 MCU 來說 RAM 執行程序的功耗比 FLASH 中小,對于大部分運行時間執
    發表于 05-16 11:58

    KEIL環境下如何讓代碼 RAM運行

    前言經常遇到有人使用KEIL時需要將部分或者全部程序代碼放到RAM運行的問題,現將其總結在本文中。通過STM32F411Nucleo的一個
    發表于 08-04 14:14

    MM32KEIL環境實現部分代碼RAM運行

    速度更快,系統有更好的實時性,這時我們可以將這部分代碼放到RAM運行本文中小編會通過MM32F073的一個實際例子來給大家介紹
    發表于 03-01 16:44

    KEIL如何讓程序RAM運行

    STM32F411Nucleo 的一個例子來介紹幾種讓程序 RAM 運行的方法。該例子
    發表于 09-28 08:19

    單片機MCU如何實現讓部分代碼運行RAM

    單片機MCU如何實現讓部分代碼運行RAM
    發表于 10-30 08:26

    請問單片機MCU如何實現讓部分代碼運行RAM

    單片機MCU如何實現讓部分代碼運行RAM
    發表于 10-31 08:29

    請問單片機MCU如何實現讓部分代碼運行RAM

    單片機MCU如何實現讓部分代碼運行RAM
    發表于 11-02 07:01

    KEIL讓程序RAM運行的辦法

    通過調用 ToggleLED 函數來翻轉 LED2 亮滅將通過多種方法將這段代碼放在 RAM運行
    發表于 01-14 15:50 ?7次下載

    KEIL環境下如何讓代碼 RAM運行

    前言 經常遇到有人使用KEIL時需要將部分或者全部程序代碼放到RAM運行的問題,現將其總結在本文中。通過STM32F411Nucleo的一
    發表于 11-29 15:54 ?6123次閱讀
     <b class='flag-5'>KEIL</b><b class='flag-5'>環境</b>下如何讓<b class='flag-5'>代碼</b><b class='flag-5'>在</b> <b class='flag-5'>RAM</b><b class='flag-5'>中</b><b class='flag-5'>運行</b>

    MCU部分函數運行RAM 的具體方法

    RAM 。 昨天,為解決次問題,實現了一種解法,具體做法如下: 1. 實現運行RAM的 r
    發表于 10-18 17:44 ?807次閱讀

    使用KEIL的時候如何讓程序RAM運行

    STM32F411Nucleo的一個例子來介紹幾種讓程序RAM運行的方法。該例子,通過調
    發表于 11-19 17:22 ?14次下載
    使用<b class='flag-5'>KEIL</b>的時候如何讓程序<b class='flag-5'>在</b><b class='flag-5'>RAM</b><b class='flag-5'>中</b><b class='flag-5'>運行</b>

    STVDCOSMICRAM運行代碼stm8 ram運行程序

    STVDCOSMICRAM運行代碼stm8 ram
    發表于 09-17 17:12 ?12次下載
    <b class='flag-5'>在</b>STVDCOSMIC<b class='flag-5'>在</b><b class='flag-5'>RAM</b><b class='flag-5'>中</b><b class='flag-5'>運行</b><b class='flag-5'>代碼</b>stm8 <b class='flag-5'>ram</b><b class='flag-5'>中</b><b class='flag-5'>運行</b>程序

    如何將MCU中部分函數運行RAM

    MCU(如: 基于Cortex V6M 的Cortex M0+ 等) Code 通常運行在內嵌Flash 。在某些特定應用場合,需要將部分函數運行
    發表于 02-11 14:54 ?2次下載
    如何將<b class='flag-5'>MCU</b>中部分函數<b class='flag-5'>運行</b>于<b class='flag-5'>RAM</b><b class='flag-5'>中</b>

    如何使用ModelSimVHDL實現RAM

    本教程,我們將探索如何使用 ModelSim VHDL 實現 RAM
    發表于 07-29 16:34 ?3022次閱讀
    如何使用ModelSim<b class='flag-5'>在</b>VHDL<b class='flag-5'>中</b><b class='flag-5'>實現</b><b class='flag-5'>RAM</b>
    主站蜘蛛池模板: 一区二区午夜 | 精品国产免费观看久久久 | 精品亚洲国产国拍 | 琪琪午夜免费影院在线观看 | 久久婷婷是五月综合色狠狠 | 日本乱理论片免费看 | 久久国产精品99久久久久久老狼 | 免费h视频 | 狠狠操天天 | 欧美视频精品一区二区三区 | 国产午夜视频在线观看网站 | 免费黄色大片在线观看 | 亚洲夜夜操 | 色宅男午夜电影在线观看 | 射吧亚洲| 日本黄色片免费看 | 天堂日韩| 天天综合在线视频 | 久久精品高清视频 | 天天爱天天做天天干 | 最新亚洲情黄在线网站 | 艹逼免费视频 | 色多多福利网站 | 欧美3p精品三区 | 欧美一级高清免费播放 | 男女交性特一级 | 禁网站在线观看免费视频 | 国产亚洲欧美一区 | 欧美性操 | 手机看片1024手机在线观看 | 天堂中文字幕在线 | 日本口工禁漫画无遮挡全彩 | 欧美综合色区 | 国产成都一二三四区 | 黄h网站| 美女黄色毛片免费看 | 四虎精品免费国产成人 | 男人的天堂在线视频 | 情趣店上班h系列小说 | 国产午夜精品不卡片 | 亚洲毛片大全 |