Beginning
Aug 24 2007, 20:31
Hello All! Всезнающая общественность, столкнулся со следующей проблемой. Знаю KEIL и есть наработки под ARM LPC2xxx. Влюбился в эту среду и её возможности. Но жизнь заставила писать проект под SHARP LH79525. Это ядро ARM720T. Но нет необходимости использовать периферию, кроме UART. MMU и кэш тоже не надо использовать. Если какие особенности при компиляции именно под это ядро? Если я будо писать под ARM7TDMI-S, а потом зашью в SHARP? Он не будет глючить?
Где почитать на русском про ядро ARM720T
Beginning
Aug 25 2007, 09:46
Что, никто мне не ответит?
Цитата(Beginning @ Aug 24 2007, 23:31)

Если какие особенности при компиляции именно под это ядро?
Там наверняка должен быть какой нибудь рекомендованный стартап файл.
Beginning
Aug 25 2007, 10:32
При компиляции С кода под ARM LH75xx, выскакивает ошибка:
*** Error: Referred Memory Range 'ROM1' is undefined.
Что это значит?
rezident
Aug 25 2007, 12:17
Цитата(Beginning @ Aug 25 2007, 16:32)

При компиляции С кода под ARM LH75xx, выскакивает ошибка:
*** Error: Referred Memory Range 'ROM1' is undefined.
Что это значит?
Если дословно, то "диапазон памяти под именем 'ROM1' на который что-то ссылается/обращается не определен". Видимо стартап не подходящий или программа рассчитана на MCU с другим объемом/распределением памяти.
zltigo
Aug 25 2007, 13:14
Цитата(Beginning @ Aug 25 2007, 12:46)

Что, никто мне не ответит?
А что ответить

Ядро редкое, какое-то полузаброшенное. Был немало удивлен, что Keil aka ARM не поддерживает (точнее похоже поддерживает, но в узкозаточенных версиях компилятора ).
Beginning
Aug 25 2007, 13:27
Ну почему же заброшенное, например NXP(Philips) 3 июля 2007 купило у SHARP лицензию. (http://www.symmetron.ua/news/news:Sharpamt) Я перебрал все процессоры в Keil и не нашёл ни одного с архитектурой ARM720. Например в IAR есть и архитектура, и процессор, но к IAR личная неприязнь.
zltigo
Aug 25 2007, 14:13
Цитата(Beginning @ Aug 25 2007, 16:27)

Например в IAR есть и архитектура, и процессор, но к IAR личная неприязнь.
А у меня нет личной неприязни ни к одному компилятору - подчеркиваю компилятору а не размалеванной IDE поставляемой с некоторыми компиляторами в комплекте (к коим у меня всем личная неприязнь

). Берете номальный редактор, чего-нибудь make-образное и начинаете жизнь с ЛЮБЫМ компилятором, который необходим Вам для данной работы.
Beginning
Aug 25 2007, 15:02
Согласен, компилятор всё равно какой, просто, когда привыкни к хорошему (Keil) с его супер возможностями, да хотя бы возможность писать свои отладочные функции, а потом садишься на то что, тебе ужасно не нравится, то начинаешь, и соринки в глазах замечать.
zltigo
Aug 25 2007, 15:34
Цитата(Beginning @ Aug 25 2007, 18:02)

Согласен, компилятор всё равно какой, просто, когда привыкни к хорошему (Keil) с его супер возможностями
Keil безусловно хороший. Для некоторых ядер, пожалуй, максимально хороший. Но в общем ничем 'супер' не выдающийся среди группы других. Кроме того, жизнь течет, все меняется - лидеры не вечны. Осмотритесь вокруг.
Beginning
Aug 25 2007, 16:08
А что есть выбор? Keil, IAR, вроде CrossWorck. Чем я ещё могу воспользоватся для написания кода. Только чтобы это не было как в том анекдоте, когда гинеколог двигатель, через выхлопную трубу перебирал.
Цитата(Beginning @ Aug 25 2007, 19:08)

А что есть выбор? Keil, IAR, вроде CrossWorck. Чем я ещё могу воспользоватся для написания кода. Только чтобы это не было как в том анекдоте, когда гинеколог двигатель, через выхлопную трубу перебирал.
+ GHS,gcc,ARM
zltigo
Aug 25 2007, 16:30
Цитата(Beginning @ Aug 25 2007, 19:08)

А что есть выбор?
Keil(который RVCT ), IAR, GCC - это вполне очевидный и уже достаточный выбор.
Rowley можо, пожалуй. Остальные предположительно заметно послабее.
Цитата
Чем я ещё могу воспользоватся для написания кода
Начните с IAR 5.10

, поскольку Keil не прогнозируем для данного применения.
Цитата(Beginning @ Aug 25 2007, 19:08)

Только чтобы это не было как в том анекдоте, когда гинеколог двигатель, через выхлопную трубу перебирал.
Кажется слышал, а причем тут он? Простите, проблема была в Гинекологе, а не в инстументарии.
Beginning
Aug 25 2007, 17:27
У меня есть IAR ARM 4.31A плюс кряк. 5.1 это последняя версия? Есть ли к ней кряк? И сколько весит, а то сотню мегабайт… не знаю, что они не так делают, что бы среда столько кода занимала, nop-ами чтоли забивают

. И стоит ли её качать, или они ни чем не отличаются?
zltigo
Aug 25 2007, 18:41
Цитата(Beginning @ Aug 25 2007, 20:27)

У меня есть IAR ARM 4.31A
Уже далеко не свежий, даже в ветке 4.X
Цитата
5.1 это последняя версия?
Да последняя, если нет, как я понимаю, никаких причин использовать ветку 4.X, то начинайте именно с нее, поскольку отличия весьма заметны, начина с несовместимости IDE

, "проектов" и принципиально другого формата выходных файлов и линкера. В целом это большой шаг к стандартизации компиляторов.
P.S.
Веточка по 5.10 на форуме была.
Beginning
Aug 26 2007, 15:28
Есть следующий код:
Цитата
#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
zltigo
Aug 26 2007, 15:47
x=UART1->dr;
Говорите среду кейловскую освоили и полюбили всй душой? Осталось с основами основ языка 'C' ознакомиться.
Beginning
Aug 26 2007, 15:55
Спасибо за ответ, попробую.
zltigo
Aug 26 2007, 15:58
Цитата(Beginning @ Aug 26 2007, 18:55)

... попробую.
Пробовать не надо - сразу заработает, однако, ибо UART1 это у Вас ничто иное, как
указатель на структуру.
SergeyDDD
Aug 26 2007, 18:52
Основные различия между ARM7TDMI и ARM720T:
- наличие встроенного сопроцессора MMU (memory management unit), наличие кеша и буфера записи.
- у ARM720T существуют дополнительные команды для работы с сопроцессорами MCR и MRC.
Когда MMU не включен (а он такой после сброса) ARM720T-ый камень это чистой воды ARM7TDMI.
"Послекейловские" программы работают на ура!
На сколько мне известно MMU это та штука, которая необходима для Linux и Windows CE.
На ARM720T можно запустить Windows CE.
Сам вплотную работаю с Cirrus Logic EP7312 и использую MMU. Ну очччень полезная штука!!!
С его помощью можно легко "перекроить" карту памяти и "сшить" так как тебе надо.
Супер-инструмент для реализации мультипотокового проекта, где каждый поток это типичная программа для ARM7.
С сопроцессором работаю на асме.
Beginning
Aug 28 2007, 14:08
Вообщем, код откомпилированный в Keil? запускается sharp. Но есть много неприятностей. Например, когда запускаешь дебугер пишет:
*** Error: 'C:\Program Files\Keil\ARM\BIN\DARMSH.DLL' not found, или нет возможности посмотреть периферийные регистры. Вобщем, все-таки решил писать в IAR. По сему возникло несколько вопросов. Как в IAR пишется стартовый код? Где взять пару проектов, чтобы поучится и посмотреть особенности. Язык С. Инициализация на asm.
zltigo
Aug 28 2007, 17:22
Цитата(Beginning @ Aug 28 2007, 17:08)

Где взять пару проектов, чтобы поучится и посмотреть особенности. Язык С. Инициализация на asm.
Как это не удивительно

, но проекты в большом количестве идут вместе с компилятором. Документы по нюансам реализации 'C' (ASM/Link/Tools/...) - тоже. Документация у IAR вполне хороша.
Beginning
Aug 28 2007, 21:05
Ктонибудь может показать пример грамотного инициализовочного файла для IAR?
zltigo
Aug 28 2007, 21:33
Цитата(Beginning @ Aug 29 2007, 00:05)

Ктонибудь может показать пример грамотного инициализовочного файла для IAR?
Грамотность startup, она, простите не компилятором определяется а решаемой задачей. Те, что в примерах лежат вполне грамотны в рамках решаемой ими задачи. Один из своих (вполне грамотно решаеющий МОИ задачи) в качестве примера соответствия версий 5.10 и 4.xx выкладывал буквально сегодня.
Beginning
Aug 29 2007, 07:10
a ссылку, или название темы с startup?
Beginning
Aug 29 2007, 12:13
Обнаружил очень неприятную засаду в IAR. Суть: В других оболочках когда мне было необходимо посмотреть, что компилятор вытворил на asm, я делал так: копировал cntrl+С сишную строку, запускал дебагер, и cntrl+F cntrl+V быстро находил то место где находится сишная строка. В IAR в дебагере поика нет. Как мне быть?
zltigo
Aug 29 2007, 12:24
Цитата(Beginning @ Aug 29 2007, 15:13)

необходимо посмотреть, что компилятор вытворил на asm, я делал так....
Обалденная "технология".
Вообще-то всегда и везде независимо от компилятора, отладчика, IDE, для этого просто читают листинги или сгенеренный ASM файл.
Почтайте документацию на компилятор перед сном - очень помогает.
P.S.
А эту тему я закрываю. Ответ на основной вопрос дан исчерпывающий.
Все остальные вопросы пошли не по теме и на уровне ветки для начинающих - просьба туда их и постить.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.