新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > DSP編程技巧之19---詳解cmd文件

        DSP編程技巧之19---詳解cmd文件

        作者:paradoxfx 時間:2014-08-11 來源:電子產品世界 收藏

          4 .sysmem

        本文引用地址:http://www.104case.com/article/256732.htm

          為動態內存分配保留存儲空間,從而為malloc,calloc,realloc和 new等動態內存分配程序服務。如果這幾個動態內存管理函數沒有在C/C++代碼中用到的話,則不需要創建.sysmem段。

          此外,我們經常提到“堆棧”,在這里我們只講了棧,那堆(heap)是干啥的呢?堆就是是用來做動態內存分配的,因為在上RAM資源仍然是相對寶貴的,所以堆占用的存儲空間不能無限擴展,對于near關鍵字修飾的堆,其占用的地址空間最大只能到32K字;對于far關鍵字修飾的堆,它使用的存儲空間由自動設置,默認只有1K字。

          5 .esysmem

          為far malloc函數分配動態存儲空間。如果沒有用到這個函數,則不會自動創建.esysmem段。

          對于匯編器,它會自動創建.text, .bss和.data三個段。我們可以使用#pragma CODE_SECTION和#pragma DATA_SECTION來創建更多的段。

          默認情況下,各個段所分配的存儲空間配置如下(可根據需要進行更改):

          最后,以一個ADC寄存器對應的內存地址分配的例子,來看看完成的文件是如何完成的(事實上所有寄存器的內存地址分配在TI的外設和頭文件包中已經幫我們做好了,這里是個演示)。

          首先,在使用寄存器(或者自定義的變量)的頭文件或者源程序里,為寄存器(或者自定義的變量)指定一個自定義的段:

          #ifdef __cplusplus

          #pragma DATA_SECTION("AdcRegsFile")

          #else

          #pragma DATA_SECTION(AdcRegs,"AdcRegsFile");

          #endif

          volatile struct ADC_REGS AdcRegs; //使得結構體被分配在指定的段中

          然后,在文件中,在SECTIONS下把AdcRegsFile這個段分配到ADC這塊內存區域中,并在MEMORY中定義ADC這塊內存區域的起始位置和長度。

          MEMORY

          {

          PAGE 0: /* Program Memory */

          /* 省略不相關內容的顯示 */

          PAGE 1: /* Data Memory */

          /* 省略不相關內容的顯示 */

          ADC : origin = 0x007100, length = 0x000020 /* ADC registers */

          /* 省略不相關內容的顯示 */

          }

          SECTIONS

          {

          /* 省略不相關內容的顯示 */

          AdcRegsFile : > ADC, PAGE = 1

          /* 省略不相關內容的顯示 */

          }

          以上是一個自定義段并制定內存區域的完整例子。如果不需要這樣的自定義,則可以不去管它,使用現有的,比如某個例子中可以使用的文件就可以了。

        c++相關文章:c++教程



        上一頁 1 2 下一頁

        關鍵詞: DSP cmd 編譯器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 花垣县| 涞水县| 宁安市| 蓝田县| 双桥区| 辽阳县| 东光县| 荥阳市| 孟连| 清流县| 兴和县| 岚皋县| 湘阴县| 巫山县| 贺兰县| 清流县| 漯河市| 沅陵县| 浏阳市| 建始县| 高要市| 宁都县| 香港 | 钦州市| 武义县| 安溪县| 新丰县| 湘乡市| 长丰县| 巴林左旗| 常熟市| 东乡| 郸城县| 富阳市| 谢通门县| 龙海市| 象州县| 河东区| 沂南县| 简阳市| 佛坪县|