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

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

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

ソリューションへジャンプ
3,823件の閲覧回数
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 解決策
2,127件の閲覧回数
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 返答(返信)
2,128件の閲覧回数
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,127件の閲覧回数
Dekabrist
Contributor I

Thank you for explanation.

0 件の賞賛
返信