Difference between target "internal xROM-xRAM" & "internal pROM-xRAM"

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Difference between target "internal xROM-xRAM" & "internal pROM-xRAM"

跳至解决方案
3,025 次查看
Dekabrist
Contributor I

Hi,

During creating new stationary project CW created two targets : "internal xROM-xRAM" & "internal pROM-xRAM". What difference between this targets?

标签 (1)
标记 (1)
0 项奖励
回复
1 解答
1,329 次查看
J2MEJediMaster
Specialist I

The Freescale DSP uses a Harvard architecture, where a distinction is made between data (x, y) memory and program (p) memory. The data can usually be accessed in parallel on two separate data buses, hence the x and y notation. So, when you program flash memory, you have to load the code into program flash memory space (pROM), while the data constants go into the data flash memory space (xROM). If you have a huge number of constants (quite possible when you're doing digital filtering), there might not be enough room in the CPU's xROM space to hold them. Therefore a sleight of hand is to have the linker load the data constants into program flash memory, which is typically larger in size than the data flash memory. A little code at start-up copies the data constants out of the program code space and loads them into xRAM where they are then treated properly like data.

 

In summary:

The internal xROM-xRAM target has all constant data loaded into the data flash space (xROM).

The internal pROM-xRAM target has the constant data loaded into the program flash space (pROM).

 

Both projects use on-chip Flash and RAM for program execution, hence the term 'internal'.

 

More information can be found in the Targeting 56800E manual (Targeting_56800E.pdf). See the section, Utilizing Program Flash and Data RAM for Constant Data in C.

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,330 次查看
J2MEJediMaster
Specialist I

The Freescale DSP uses a Harvard architecture, where a distinction is made between data (x, y) memory and program (p) memory. The data can usually be accessed in parallel on two separate data buses, hence the x and y notation. So, when you program flash memory, you have to load the code into program flash memory space (pROM), while the data constants go into the data flash memory space (xROM). If you have a huge number of constants (quite possible when you're doing digital filtering), there might not be enough room in the CPU's xROM space to hold them. Therefore a sleight of hand is to have the linker load the data constants into program flash memory, which is typically larger in size than the data flash memory. A little code at start-up copies the data constants out of the program code space and loads them into xRAM where they are then treated properly like data.

 

In summary:

The internal xROM-xRAM target has all constant data loaded into the data flash space (xROM).

The internal pROM-xRAM target has the constant data loaded into the program flash space (pROM).

 

Both projects use on-chip Flash and RAM for program execution, hence the term 'internal'.

 

More information can be found in the Targeting 56800E manual (Targeting_56800E.pdf). See the section, Utilizing Program Flash and Data RAM for Constant Data in C.

0 项奖励
回复
1,329 次查看
Dekabrist
Contributor I

Thank you for explanation.

0 项奖励
回复