●CODE SECTION指令及其用法 ◆语法: #pragma CODE SECTION(func_name,"section_name") ◆作用:把C函数func name的代码配置到由section_name 定义的程序段中。 ◆C源程序: #pragma CODE SECTION(funcA,“codeA”) int funca(int a) int i; ◆汇编源程序: return (i a); sect “codeA global funca 米 FUNCTION NAME:funcA funcA: RET 24
⚫ CODE_SECTION指令及其用法 ◆ 语法: #pragma CODE_SECTION(func_name,"section_name") 24 ◆ 作用: 把C函数func_name的代码配置到由section_name 定义的程序段中。 ◆ C源程序: #pragma CODE_SECTION(funcA,“codeA”) int funcA(int a) { int i; return (i = a); } ◆ 汇编源程序: .sect “codeA” .global _funcA * FUNCTION NAME: _funcA * _funcA: RET
●DATA SECTION指令及其用法 ◆语法: #pragma DATA SECTION(var name,"section name") ◆作用:var name是包含在C函数内的变量名称,该指令将 数据var name配置到由section name定义的数据段中. ◆例如:C源程序: #pragma DATA SECTION(bufferB,"my_sect") char bufferA[512]; char bufferB[512]; ◆则汇编源程序: global bufferA .bss bufferA.512 global bufferB bufferB:.usect "my sect",512 25
25 ◆ 例如:C源程序: #pragma DATA_SECTION(bufferB, "my_sect") char bufferA[512]; char bufferB[512]; ◆ 则汇编源程序: .global _bufferA .bss _bufferA,512 .global _bufferB _bufferB: .usect "my_sect", 512 ◆ 语法: #pragma DATA_SECTION(var_name, "section_name") ⚫ DATA_SECTION指令及其用法 ◆ 作用: var_name是包含在C函数内的变量名称, 该指令将 数据var_name配置到由section_name定义的数据段中
6.2.6标准ANSI C语言模式的改变 (-pk、pr和-ps选项) 编译源代码有如下的模式: ◆Normal ANSI模式(默认) ◆K&RC模式(不适用于C++代码) ◆宽松ANSI模式 ◆严格ANSI模式 26
6.2.6 标准ANSI C语言模式的改变 (-pk、-pr和-ps选项) 编译源代码有如下的模式: ◆ Normal ANSI模式(默认) ◆ K&R C模式(不适用于C++代码 ) ◆宽松ANSI模式 ◆严格ANSI模式 26
3.2.5 构建(Build)操作的参数设置 构建参数包括汇编器参数和链接器参数(对C程序还包 括编译器参数)。方法:将鼠标移至Project Explorer'”中 的当前工程文皓品2h仙右击蕊总 、十安出出又 -▣☒ Eile Edit Yiew Navigate Eroject Bun Scripts Hindow Help “Properties” 的·图脑代·教··回与宁·÷ 台母ccs Edit Project Explorer曰年y口口2gx31.cmd 目E3_1.asm3 Ex3_1.Pjt [Active Debue 白招Binaries Hew Ex3_1.pjt.out -[C5500/Copy Ctrl+C 日Ineludes D:/ti/eesv5/tools/compil Esste Ctrl+V 曰Debue5 卫elete Delete 年斤Ex31.obj-[C5500/be] Source Ex3_1.pjt.out [C5500/b M0型色 目ces0bjs.opt Renamne.. F2 目Ex3_1.pjt.m好 makefile Import... objects.mk t☒Expor t.· Problems sources.mk 0 items 圆画subdir_rules.mk Show Build Settings... Build Project Description subdir_vars.mk 曰固Ex3_1.asm Clean Project 曰-回start Rebuild Project -⊙L1 Refresh 5 白2Ex3_1.cmd Close Project DARAM1 Build Configurations ⊙DARAI2 Make Targets Index Add Files... 卫ebug As Team :Licensed Compare With Restore from Local History... Refactor Source Source Propertias Alt+Enter
3.2.5 构建(Build)操作的参数设置 27 ◼ 构建参数包括汇编器参数和链接器参数(对C程序还包 括编译器参数)。方法:将鼠标移至“Project Explorer” 中 的当前工程文件Ex3_1.pjt处, 右击菜单选择 “Properties”, 打开Properties窗口
2.兼容K&RC(-pk选项) Properties for Exam6 5 type filter text Language Options >Resource General Build Configuration:Debug Active Manage Configurations_ C5500 Compiler Processor Options Optimization C/C++Dialect Debug Options Language mode Include Options Disable intrins Advanced Options Output xref lis Relaxed parsing(non-strict ANSI)(--relaxed ansi,-pr) Advanced Debug Options Strict ANSI mode (errors)(--strict ansi,-ps) Language Options Parser Preprocessing Option Ignore inline keyword (--no inlining.-pi) Predefined Symbols Program mode compilation (--program level compile,-pm) Diagnostic Options Output raw listing to .rl file(--gen acp raw,-pl) Runtime Model Options Multibyte character support(--multibyte chars,-pc) Advanced Optimizations Enable C++exception handling (--exceptions) Entry/Exit Hook Options Support C++run-time type information(--rtti,-rtti) Library Function Assumption Treat C files as C++files (--cpp default,-fg) Assembler Options Enable support for GCC extensions(--gcc) File Type Specifier Do static early template instantiation(--static template instantiation) Directory Specifier Default File Extensions Command Files MISRA-C:2004 C5500 Linker 28
2.兼容K&R C(-pk选项) ⚫ 主要用来简化用C55x ANSI C编译器对以前C 标准代码的编译过程. ⚫ 编译器有一个K&R (–pk)选项,用来改变语 言的段规则来兼容老版本的代码. ⚫ 总体说来,–pk选项使编译要求比ANSI C更 加容易达到. ⚫ 同时,该选项支持ANSI C语言的新功能,如 函数原型、枚举、初始化和预处理器结构. 28