реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Closed TopicStart new topic
> Можно ли код откомпилированный под ARM7TDMI-S использовать в ARM720T
Beginning
сообщение Aug 26 2007, 15:28
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 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


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 26 2007, 15:47
Сообщение #17


Гуру
******

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



x=UART1->dr;


Говорите среду кейловскую освоили и полюбили всй душой? Осталось с основами основ языка 'C' ознакомиться.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Beginning
сообщение Aug 26 2007, 15:55
Сообщение #18


Знающий
****

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



Спасибо за ответ, попробую.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 26 2007, 15:58
Сообщение #19


Гуру
******

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



Цитата(Beginning @ Aug 26 2007, 18:55) *
... попробую.

Пробовать не надо - сразу заработает, однако, ибо UART1 это у Вас ничто иное, как указатель на структуру.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SergeyDDD
сообщение Aug 26 2007, 18:52
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 231
Регистрация: 7-12-06
Из: Киев
Пользователь №: 23 248



Основные различия между ARM7TDMI и ARM720T:
- наличие встроенного сопроцессора MMU (memory management unit), наличие кеша и буфера записи.
- у ARM720T существуют дополнительные команды для работы с сопроцессорами MCR и MRC.

Когда MMU не включен (а он такой после сброса) ARM720T-ый камень это чистой воды ARM7TDMI.
"Послекейловские" программы работают на ура! smile.gif

На сколько мне известно MMU это та штука, которая необходима для Linux и Windows CE.
На ARM720T можно запустить Windows CE.

Сам вплотную работаю с Cirrus Logic EP7312 и использую MMU. Ну очччень полезная штука!!!
С его помощью можно легко "перекроить" карту памяти и "сшить" так как тебе надо.
Супер-инструмент для реализации мультипотокового проекта, где каждый поток это типичная программа для ARM7.
С сопроцессором работаю на асме.
Go to the top of the page
 
+Quote Post
Beginning
сообщение Aug 28 2007, 14:08
Сообщение #21


Знающий
****

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



Вообщем, код откомпилированный в Keil? запускается sharp. Но есть много неприятностей. Например, когда запускаешь дебугер пишет:
*** Error: 'C:\Program Files\Keil\ARM\BIN\DARMSH.DLL' not found, или нет возможности посмотреть периферийные регистры. Вобщем, все-таки решил писать в IAR. По сему возникло несколько вопросов. Как в IAR пишется стартовый код? Где взять пару проектов, чтобы поучится и посмотреть особенности. Язык С. Инициализация на asm.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 28 2007, 17:22
Сообщение #22


Гуру
******

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



Цитата(Beginning @ Aug 28 2007, 17:08) *
Где взять пару проектов, чтобы поучится и посмотреть особенности. Язык С. Инициализация на asm.

Как это не удивительно smile.gif, но проекты в большом количестве идут вместе с компилятором. Документы по нюансам реализации 'C' (ASM/Link/Tools/...) - тоже. Документация у IAR вполне хороша.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Beginning
сообщение Aug 28 2007, 21:05
Сообщение #23


Знающий
****

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



Ктонибудь может показать пример грамотного инициализовочного файла для IAR?


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 28 2007, 21:33
Сообщение #24


Гуру
******

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



Цитата(Beginning @ Aug 29 2007, 00:05) *
Ктонибудь может показать пример грамотного инициализовочного файла для IAR?

Грамотность startup, она, простите не компилятором определяется а решаемой задачей. Те, что в примерах лежат вполне грамотны в рамках решаемой ими задачи. Один из своих (вполне грамотно решаеющий МОИ задачи) в качестве примера соответствия версий 5.10 и 4.xx выкладывал буквально сегодня.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Beginning
сообщение Aug 29 2007, 07:10
Сообщение #25


Знающий
****

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



a ссылку, или название темы с startup?


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
Beginning
сообщение Aug 29 2007, 12:13
Сообщение #26


Знающий
****

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



Обнаружил очень неприятную засаду в IAR. Суть: В других оболочках когда мне было необходимо посмотреть, что компилятор вытворил на asm, я делал так: копировал cntrl+С сишную строку, запускал дебагер, и cntrl+F cntrl+V быстро находил то место где находится сишная строка. В IAR в дебагере поика нет. Как мне быть?


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 29 2007, 12:24
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 06:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01462 секунд с 7
ELECTRONIX ©2004-2016