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

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

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

3天內不再提示

C2000芯片如何給一個連續的RAM區間賦初值

星星科技指導員 ? 來源:TI ? 作者:Johnson Chen ? 2023-03-24 09:26 ? 次閱讀

在開發程序的時候,我們經常會希望某些全局變量在被使用時已經有想要的初始值,我們通常會用下面兩種方法來實現變量的初始值賦值,

方法一:定義帶初始值的全局變量

例如:int temp1 = 0x00;

方法二:定義不帶初始值的全局變量

例如:int temp1;

在main()函數初始化時給變量寫初值

例如: temp1= 0x00;

但如果很多的變量比如一個RAM section都要賦同一個初值,使用上面提到的兩個方法就會比較繁瑣。本文介紹方法可以快速實現這個功能。

此方法有以下幾個特點:

不影響這個連續的RAM區間里的部分變量需要通過前面提到的方法一重新賦初值。

可以避免有時因為編程者的初心大意忘記給某些變量賦值而導致程序運行異常。

解決很多不了解C2000匯編指令用戶實現此功能的困擾。

首先我們要了解C2000上電時的流程,下圖為C2000 上電時從RAM或者FLASH 引導的流程圖。

poYBAGQc_EqAb5a_AAEIHV_RIcc681.png

對于C2000 芯片來說程序的執行入口是在CMD 文件里面“codestart”這個段定義的,而在”XXXXXX_CodeStartBranch.asm”里面通過“.sect "codestart" ”語句將相應的跳轉指令分配到了這個段。

通?!癤XXXXX_CodeStartBranch.asm”文件內容如下:

pYYBAGQc_EqAcQwxAADHH99Wdoc766.png

其中_c_int00 這個函數本體是在C2000編譯器的RTS library里面,這個函數實現的功能是把用戶定義的帶初始值的全局變量的初始值的從FLASH搬運到RAM里面,從而實現初始值的傳遞,之后PC就會跳轉到用戶的main()入口。

因此我們需要在“LB _c_int00” 語句之前實現RAM section值的初始化。

假設我們需要對0x00000400為起始地址長度為0x200的RAM 區間進行初始化,初始值為0x00。

下面為具體實現代碼:

MOV ACC, #00H ; initialed value

MOVL XAR5, #400H ;Dest address

MOVL XAR4, #(200H-1) ;length

RPT @AR4 || MOV *XAR5++, ACC

如果需初始化成其它值,將第一行 “#00H”更改為其它的值即可。

將代碼放入“ XXXXXX_CodeStartBranch.asm ”下面藍色部分位置即可。

poYBAGQc_EuAbDqSAAEwkRVQHPk401.png

注意事項:

1.本方法適用于所有C2000產品,不同芯片“ XXXXXX_CodeStartBranch.asm ”文件名不同,XXXXXX為芯片系列名。

2.因為C2000的看門狗上電時是默認開啟的, 且溢出后會產生復位。為了確保在初始化RAM時不會產生看門狗復位,我們首先要先禁止看門狗,請確保“ WD_DISABLE .set 1 ”。

審核編輯:郭婷

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

    關注

    453

    文章

    50406

    瀏覽量

    421835
  • 看門狗
    +關注

    關注

    10

    文章

    559

    瀏覽量

    70746
  • 編譯器
    +關注

    關注

    1

    文章

    1618

    瀏覽量

    49051
收藏 人收藏

    評論

    相關推薦

    C2000資料

    自己最近剛開始入手STM32,以前都是做DSP C2000的,沒什么可以大家的,發C2000TMS320F28027的資料吧。F28027.rar (20.84 MB )
    發表于 04-30 02:06

    C2000系列芯片RAM在線診斷方法有哪些?

    C2000系列芯片RAM在線診斷實現方法
    發表于 11-24 06:08

    基于C2000系列芯片RAM在線診斷實現方法

    Software Package和C2000 SafeTI 60730 SW Packages軟件庫等,可以提供很多的診斷測試功能,例如CPU、時鐘、外設、RAM等的診斷,已經可以滿足部分的需求…
    發表于 11-08 07:12

    C2000如何連續RAM區間初值

    面提到的兩方法就會比較繁瑣。本文介紹方法可以快速實現這個功能。此方法有以下幾個特點:不影響這個連續RAM區間里的部分變量需要通過前面提到的方法
    發表于 11-08 06:11

    TI C2000 引導模式原理的理解

    在使用C2000的時候,經常遇到工程師說芯片仿真能夠運行,但是單機跑卻不能跑起來;或者在調試時,復位芯片run,發現程序不能跑起來。這其中的原因主要是沒有了解C2000的引導模式設置。
    發表于 04-26 12:41 ?6419次閱讀
    TI <b class='flag-5'>C2000</b> 引導模式原理的理解

    C2000入門:C2000的基本知識介紹(1)

    C2000入門基礎()—C2000概述(上)
    的頭像 發表于 08-14 01:54 ?1.2w次閱讀

    C2000的開發環境

    C2000入門基礎(七)—C2000 開發環境
    的頭像 發表于 08-10 01:01 ?3679次閱讀

    C2000入門:C2000的復位系統介紹

    C2000入門基礎(三)—C2000的復位系統
    的頭像 發表于 08-06 00:55 ?5291次閱讀

    C2000入門:C2000的外置電路的控制介紹(6)

    C2000入門基礎(六)C2000的控制外設
    的頭像 發表于 04-15 06:41 ?3967次閱讀
    <b class='flag-5'>C2000</b>入門:<b class='flag-5'>C2000</b>的外置電路的控制介紹(6)

    C2000入門:C2000的基本知識介紹 (2)

    C2000入門基礎(二)C2000概述(下)
    的頭像 發表于 04-15 06:30 ?4132次閱讀
    <b class='flag-5'>C2000</b>入門:<b class='flag-5'>C2000</b>的基本知識介紹 (2)

    C2000芯片如何連續RAM區間初值?

    ?????? 例如: temp1= 0x00; 但如果很多的變量比如RAM section都要一個
    的頭像 發表于 10-20 18:38 ?510次閱讀

    C2000芯片怎么連續RAM區間初值

    。 此方法有以下幾個特點: 不影響這個連續RAM區間里的部分變量需要通過前面提到的方法重新
    的頭像 發表于 01-19 15:15 ?1681次閱讀
    <b class='flag-5'>C2000</b><b class='flag-5'>芯片</b>怎么<b class='flag-5'>給</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><b class='flag-5'>初值</b>

    C2000系列芯片RAM在線診斷實現方法

    C2000系列芯片RAM在線診斷實現方法
    發表于 10-31 08:23 ?1次下載
    <b class='flag-5'>一</b>種<b class='flag-5'>C2000</b>系列<b class='flag-5'>芯片</b>的<b class='flag-5'>RAM</b>在線診斷實現方法

    C2000芯片如何連續RAM區間初值

    C2000芯片如何連續RAM
    發表于 10-31 08:23 ?2次下載
    <b class='flag-5'>C2000</b><b class='flag-5'>芯片</b>如何<b class='flag-5'>給</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><b class='flag-5'>初值</b>

    C2000上電引導模式解析

    。另外當我們想通過其他方式去引導芯片啟動的時候,往往也需要清楚知道C2000的引導是怎么設置的。因此,在這里跟大家分享下我對C2000引導模式的理解,希望對各位理解
    的頭像 發表于 04-11 09:44 ?1593次閱讀
    <b class='flag-5'>C2000</b>上電引導模式解析