|
Можно ли код откомпилированный под ARM7TDMI-S использовать в ARM720T |
|
|
|
Aug 26 2007, 15:28
|

Знающий
   
Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053

|
Есть следующий код: Цитата #define REG8(x) (*((volatile unsigned char *)(x))) #define REG16(x) (*((volatile unsigned short *)(x))) #define REG32(x) (*((volatile unsigned long *)(x)))
typedef struct { reg16 dr; /* Data Register */ reg16 pad0; reg8 rsr_ecr; /* Receive Status Reg. (Read) / Error Clear Reg. (Write) */ reg8 pad1[3]; reg32 rsrvd1[4]; reg16 fr; /* Flag Register */ reg16 pad2; reg32 rsrvd2[2]; reg16 ibrd; /* Integer Baud Rate Divisor Register */ reg16 pad3; reg16 fbrd; /* Fractional Baud Rate Divisor Register */ reg16 pad4; reg16 lcr_h; /* Line Control Register, High Byte */ reg16 pad5; reg16 cr; /* Control Register */ reg16 pad6; reg16 ifls; /* Interrupt FIFO Level Select */ reg16 pad7; reg16 imsc; /* Interrupt Mask Set/Clear */ reg16 pad8; reg16 ris; /* Raw Interrupt Status */ reg16 pad9; reg16 mis; /* Masked Interrupt Status */ reg16 padA; reg16 icr; /* Interrupt Clear Register */ reg16 padB; reg16 dmacr; /* DMA Control Register */ reg16 padC; } UART;
#define UART0 ((UART *)(UART0_BASE)) #define UART1 ((UART *)(UART1_BASE)) Не могу понять почему не прокатывает выражение типа Цитата x=UART1.dr Ругается на это так: Цитата App\main.c(95): error: #154: expression must have struct or union type
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Aug 26 2007, 18:52
|
Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 7-12-06
Из: Киев
Пользователь №: 23 248

|
Основные различия между ARM7TDMI и ARM720T: - наличие встроенного сопроцессора MMU (memory management unit), наличие кеша и буфера записи. - у ARM720T существуют дополнительные команды для работы с сопроцессорами MCR и MRC. Когда MMU не включен (а он такой после сброса) ARM720T-ый камень это чистой воды ARM7TDMI. "Послекейловские" программы работают на ура! На сколько мне известно MMU это та штука, которая необходима для Linux и Windows CE. На ARM720T можно запустить Windows CE. Сам вплотную работаю с Cirrus Logic EP7312 и использую MMU. Ну очччень полезная штука!!! С его помощью можно легко "перекроить" карту памяти и "сшить" так как тебе надо. Супер-инструмент для реализации мультипотокового проекта, где каждый поток это типичная программа для ARM7. С сопроцессором работаю на асме.
|
|
|
|
|
Aug 29 2007, 12:24
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Beginning @ Aug 29 2007, 15:13)  необходимо посмотреть, что компилятор вытворил на asm, я делал так.... Обалденная "технология". Вообще-то всегда и везде независимо от компилятора, отладчика, IDE, для этого просто читают листинги или сгенеренный ASM файл. Почтайте документацию на компилятор перед сном - очень помогает. P.S. А эту тему я закрываю. Ответ на основной вопрос дан исчерпывающий. Все остальные вопросы пошли не по теме и на уровне ветки для начинающих - просьба туда их и постить.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|