Здравствуйте.
Имеется Core Module HBI-0056B на базе ARM7TDMI. Стоит задача изменить рабочие частоты для процессора и PCI шины. Делается это (теоретически) вот таким куском кода:
UNLOCK_VALUE EQU 0xA05F
LOCK_VALUE EQU 0xFFFF
HDR_OSC EQU 0x10000008
HDR_LOCK EQU 0x10000014
CLK50 EQU 0x0015C000
CLK20 EQU 0x00120000
SC_OSC EQU 0x11000004
SCLOCK EQU 0x1100001C
CLK_AP_30 EQU 0x70
CLK_AP_26 EQU 0x60
ENTRY
LDR r0,=HDR_LOCK
LDR r1,=UNLOCK_VALUE
STR r1,[r0]
LDR r2,=HDR_OSC
LDR r1,=CLK50
STR r1,[r2]
LDR r1,=LOCK_VALUE
STR r1,[r0]
LDR r0,=SCLOCK
LDR r1,=UNLOCK_VALUE
STR r1,[r0]
LDR r2,=SC_OSC
LDR r1,=CLK_AP_30
STR r1,[r2]
LDR r1,=LOCK_VALUE
STR r1,[r0]
END
В последнем сегменте кода, который начинается с загрузки значения SCLOCK в третьей сторке выскакивает exception (Cause: Data Abort). Я так подозреваю, что связано это с тем, что пишеться значение не туда куда надо (могу и ошибаться, т.к. профан). В процесе написания программы использовались ARM Integrator/AP User Guide и ARM CM7TDMI User Guide.
Может у кого-то есть опыт, в какую сторону надо копать?
Спасибо.