在設定CSBR,CSOR時,要先設定CSOR,再設定CSBR。
因為CSBR有Enable Bit,所以要在該CS所有相關設定都設完後才能Enable,
否則會當機。
Memory Expand IO
使用Memory Map IO時,因為設定該Region是8 bit寬,所以要用
*(unsigned volatile char*)0x50002000 = 0xFF;
寫入,
如果用其他type,例如
*(unsigned volatile long*)0x50002000 = 0xFF;
則CPU會連續寫入4次(一次一個byte)所以結果會是最後一個byte的data。
如果要用long,要注意data的byte order。以M5272為例,是BigEndian.
CPLD將D24-D31拉到D-type上,所以要
*(unsigned volatile long*)0x50002000 = 0xFF000000;
其實為了避免麻煩,還是用char type來作比較好。
沒有留言:
張貼留言