
FlexBus
17-30
Freescale Semiconductor
17.4.7
Misaligned Operands
Because operands, unlike opcodes, can reside at any byte boundary, they are allowed to be misaligned.
•
Byte operand is properly aligned at any address
•
Word operand is misaligned at an odd address
•
Longword is misaligned at any address not a multiple of four
Although the processor enforces no alignment restrictions for data operands (including program counter
(PC) relative data addressing), misaligned operands require additional bus cycles.
Instruction words and extension words (opcodes) must reside on word boundaries. Attempting to prefetch
a misaligned instruction word causes an address-error exception.
The processor core converts misaligned, cache-inhibited operand accesses to multiple aligned accesses.
shows the transfer of a longword operand from a byte address to a 32-bit port. First, a byte
transfers at an offset of 0x1. The slave device supplies the byte and acknowledges the data transfer. When
the processor starts the second cycle, a word transfers with a byte offset of 0x2. The next two bytes are
transferred in this cycle. In the third cycle, byte 3 transfers. The byte offset is now 0x0, the port supplies
the final byte, and the operation completes.
Example 17-1. A Misaligned Longword Transfer (32-Bit Port)
If an operand is cacheable and is misaligned across a cache-line boundary, both lines are loaded into the
cache. The example in
because the operand is
word-sized and the transfer takes only two bus cycles.
Example 17-2. A Misaligned Word Transfer (32-Bit Port)
17.4.8
Bus Errors
The ColdFire device has no bus monitor. If the auto-acknowledge feature is not enabled for the address
that generates the error, the bus cycle can be terminated by asserting FB_TA or by using the software
watchdog timer. If the processor must manage a bus error differently, asserting an interrupt to the core
along with FB_TA when the bus error occurs can invoke an interrupt handler.
––
Byte 0
––
––
Transfer 1
––
––
Byte 1
Byte 2
Byte 3
––
––
––
Transfer 2
Transfer 3
001
010
100
16 15
31
0
24 23
7
8
FB_A[2:0]
––
––
––
Byte 0
Transfer 1
Byte 0
––
––
—
Transfer 2
001
100
16 15
31
0
24 23
7
8
FB_A[2:0]
MCF5329 Reference Manual, Rev 3
Summary of Contents for MCF5329
Page 106: ...ColdFire Core 3 32 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 148: ...Cache 5 22 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 154: ...Static RAM SRAM 6 6 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 184: ...Power Management 8 18 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 204: ...Reset Controller Module 10 8 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 220: ...System Control Module SCM 11 16 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 228: ...Crossbar Switch XBS 12 8 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 268: ...General Purpose I O Module 13 40 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 392: ...SDRAM Controller SDRAMC 18 30 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 436: ...Fast Ethernet Controller FEC 19 44 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 594: ...FlexCAN 23 30 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 678: ...Pulse Width Modulation PWM Module 26 22 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 684: ...Watchdog Timer Module 27 6 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 704: ...DMA Timers DTIM0 DTIM3 29 12 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 754: ...UART Modules 31 34 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 770: ...I2 C Interface 32 16 Freescale Semiconductor MCF5329 Reference Manual Rev 3...
Page 866: ...Debug Module 36 50 Freescale Semiconductor MCF5329 Reference Manual Rev 3...