c语言每次堆的变化是1k,DSPXC语言+程序烧写讲述.ppt
DSPXC語言程序燒寫講述
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第2.5節 DSP程序燒寫 第2.5節 DSP程序燒寫 第2.5節 DSP程序燒寫 注意事項: 電路元件初始化同步問題:由于外部器件初始化可能較慢,DSP初始化完成后要等一會兒再訪問外部慢速器件。 用仿真器執行速度比較慢,循環時間比較長,而燒寫到DSP中可能時間比較短,要對決定循環時間的循環次數重新考慮。 用仿真器調試的時候,DSP運行的一些資源(如堆棧等)用的是仿真器中的資源,燒寫到DSP中執行必須利用DSP本身的資源,燒寫前必須對.cmd文件中定義的各種資源進行詳細考慮。 連接仿真器的時候和不連接仿真器的時候電路板上負載狀態不同,可能改變板上某些信號的抖動情況,若有某部分功能模塊工作不正常,可能是由上述原因引起的干擾造成的。 浮點數運算的問題:考慮用全局變量,因為局部變量都是在堆棧里生成的,對堆棧要求太多。 習題 1.編寫完整的程序,包括鏈接命令文件,實現從x1,x2,x3,x4中找出最大值。 2.編寫完整的程序,包括鏈接命令文件,實現y=a1*x1+a2*x2+a3*x3+a4*x4 3.編寫完整的程序,驅動IO端口A,循環輸出0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80 DSP原理與應用第二章:DSP程序設計 北京交通大學電氣工程學院 夏明超 * * * * * * * * * * * * * * * * * * * * * * * * * * * 第二章:DSP程序設計 第2.1節 概述 第2.2節 DSP匯編語言概述及匯編程序設計 第2.3節 DSP C語言程序設計 第2.4節 DSP C與匯編混合編程 第2.5節 DSP程序燒寫 習題 第2.4節 DSP C與匯編混合編程 C語言和匯編語言混合編程的四種方法 (1) 獨立編寫匯編程序和C程序,分開編譯或匯編成各自的目標代碼模塊,再用鏈接器將二者鏈接起來。這種方法比較靈活,但是設計者必須自己維護各匯編模塊的入口和出口代碼,自己計算傳遞的參數在堆棧中的偏移量,工作量較大,但是能做到對程序的絕對控制。 (2) 在C程序中使用匯編程序中定義的變量和常數。 (3) 在C程序中內嵌匯編語句。這種方法可以實現C語言無法實現的一些硬件控制功能,如修改中斷控制寄存器。 (4) 將C語言編譯生成相應的匯編代碼,手工修改和優化C編譯器生成的匯編代碼。采用這種方法可以控制C編譯器,從而產生具有交叉列表的匯編程序,而設計者可以對其中的匯編語句進行修改,然后對匯編程序進行編譯,產生目標文件。 后3種方法由于在C中直接嵌入了匯編語言,易造成程序混亂,破壞C環境,甚至導致程序崩潰,而開發者又很難對不良結果進行預期和有效控制。而如果采用第一種方法,只要遵循有關C語言函數調用規則和寄存器規則,就能預見到程序運行的結果,保證程序正確。 第2.4節 DSP C與匯編混合編程 DSP C編譯器將存儲空間分為兩個線性空間: 程序存儲空間,存儲可執行碼 數據存儲空間,存儲程序執行過程中的數據和堆棧 編譯器將存儲空間以分段(section)的方式分配和管理。用戶以不同的方式分配存儲器,可以形成不同的系統配置,連接器將各個段連接在一起形成最終完整的存儲器結構。 *注意:是由連接器決定存儲器影射而不是由編譯器。 第2.4節 DSP C與匯編混合編程 已初始化的段: .text 包含所有可執行代碼和浮點型常量 PAGE 0 .pinit 包含初始化時的程序代碼 PAGE 0 .cinit 包含初始化變量和常量表 PAGE 0 .const 包含字符串常量,以及以const修飾的全局或靜態變量的聲明和初始化 PAGE 1 .econst 擴展常量 PAGE 1 .switch 包含switch語句的分支跳轉地址表 PAGE 0 第2.4節 DSP C與匯編混合編程 未初始化的段: .bss 為全局和靜態變量保留空間 PAGE 1 .ebss 擴展變量空間 PAGE1 .stack 為系統軟件堆棧分配空間 PAGE 1 .sysmem 為動態分配的內存保留空間,可以被calloc、malloc、realloc函數使用 PAGE 1 .esysmem 擴展動態內存空間 PAGE1 匯編自動生成.text,.bss和.data段。C編譯器不使用.data段。 第2.4節 DSP C與匯編混合編程 用戶定義的段: 用戶使用CODE_SECTION,DATA_SECTION定義的段,如上面的 my_sect, BufferB_sect 第2.4節
總結
以上是生活随笔為你收集整理的c语言每次堆的变化是1k,DSPXC语言+程序烧写讲述.ppt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言解析分隔符文本,c – 使用分隔符
- 下一篇: android dialog 字体,an