【今日观点】 C55x C语言编程之存储器分配
6.2.8存储器分配 1. C编译器生成的段 C编译器生成的段有两种基本的类型,即初始化段和未初始化段。 初始化段有: .cinit段,包含初始化数据表格和常数。 .pinit段,包含实时运行时调用的数据表格。 .const段,包含用con...
6.2.8存储器分配 1. C编译器生成的段 C编译器生成的段有两种基本的类型,即初始化段和未初始化段。 初始化段有: .cinit段,包含初始化数据表格和常数。 .pinit段,包含实时运行时调用的数据表格。 .const段,包含用con...
Pragma指令告诉编译器的预处理器如何处理函数。C55x C编译器支持如下pragma指令: CODE_SECTION C54X_CALL C54X_FAR_CALL DATA_ALIGN DATA_SECTION FUNC_CANNOT...
很久很久没静下心来打几个字了。虽说这几日百事缠身,可是心情却是波澜不惊,一忙起来啥都忘了。如果事无巨细的写下来,便有婆婆妈妈之嫌了。 最重要的数来也就是驾照考试吧。昨天驾照拿到手了,细细算来断断续续的练车也练了一个学期了,从酷暑练到冰寒,感...
55x C编译器可以直接将C55x汇编语言指令嵌入到编译器的汇编语言输出中,这就是C语言的扩展功能—asm指令。这个语句提供了C不能提供的对硬件的访问功能。这个语句就好像是对叫做asm的函数的调用。asm指令格式如下: asm (“asse...
寄存器变量就是用register关键字声明的关键字。根据是否使用优化器,C编译器对寄存器变量采用不同的处理方式。 当使用优化器进行编译时,编译器忽略任何寄存器声明,通过一种能够最有效地使用寄存器的代价算法,把寄存器分配给变量和临时量。 当不...
1. const C55x C编译器支持标准C语言的const关键字。将这个关键字使用到对任意变量或数组的定义上可以确保它们的值不改变。如果定义一个对象为const,那么const段就会为该对象分配存储空间。使用const关键字可以定义大常...
C55x C语言支持的数据类型有17种,具体的可以查看技术手册。 在定义各种数据类型时,应注意如下规则: (1)避免设int和long为相同大小。 (2)对定点算法(特别是是乘法)尽量使用int数据类型。用long类型作乘法操作数会导致调用...
C55x的片内外设主要有: 模数转换器(ADC):用于采集电压、面板旋钮的输入值,转换为数字量。 可编程数字锁相环时钟发生器(DPLL):VC5509的时钟频率可达200MHz,最小机器周期为5ns。 指令高速缓存(I-Cache):1个可...
C55x采用统一的存储空间和I/O空间。C55x的片内存储空间共有352KB(176K字),外部存储空间共有8MB。存储区支持的存储器类型有异步SRAM、异步EPROM、同步DRAM和同步突发SRAM。C55x的I/O空间与程序/地址空间分...
C55x的CPU包含5个功能单元:指令缓冲单元(I单元)、程序流单元(P单元)、地址-数据流单元(A单元)、数据运算单元(D单元)和存储器接口单元(M单元)。 I单元包括32×16位指令缓冲队列和指令译码器。此单元接收程序代码并放入指令缓冲...
C55x CPU含有12条内部独立总线,即: 程序地址总线(PAB):1组,24位。 程序数据总线(PB):1组,32位。 数据读地址总线(BAB、CAB、DAB):3组,24位。 数据读总线(BB、CB、DB):3组,16位。 数据写地址...