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

 
 
> Компилятор Keil uVision2 для семейств С8051, Компилятор Keil uVision2
bychkov_vladimir
сообщение Jun 22 2007, 13:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 106
Регистрация: 1-06-05
Из: Подольск
Пользователь №: 5 629



Добрый день.
Начинаю работать с контроллерами С8051Fxxx и сейчас пытаюсь собрать для них средства разработчика.
как известно , что все средства Silabs распространяються бесплатно и доступны для скачивания.
но недавно встретил такую вещь как :
Компилятор Keil uVision2, включаемый в комплект поставки SiLabs IDE, имеет ограничение по объему генерируемого hex-кода (до 2кБ).

подскажите действительно ли это так и как с этим бороться.

Спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ISD
сообщение Jul 31 2007, 15:23
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 13-02-07
Пользователь №: 25 320



Есть Keil uVision2 (по-моему лицензионная). float - без проблем, установлены dll под jtag.
Весит 28М. Переносится без установки. Отладчик и компилятор произвели приятное впечатление.
Могу поделиться.
Go to the top of the page
 
+Quote Post
777777
сообщение Aug 3 2007, 06:07
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(ISD @ Jul 31 2007, 19:23) *
float - без проблем, установлены dll под jtag.
Весит 28М. Переносится без установки. Отладчик и компилятор произвели приятное впечатление. Могу поделиться.


Если не считать абсолютно уродского редактора, то у него только одна существенная проблема - переменные int и long он располагает в порядке big-endian.
Go to the top of the page
 
+Quote Post
ISD
сообщение Aug 8 2007, 16:04
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 13-02-07
Пользователь №: 25 320



Цитата(777777 @ Aug 3 2007, 09:07) *
Если не считать абсолютно уродского редактора, то у него только одна существенная проблема - переменные int и long он располагает в порядке big-endian.


Редактор - субъективная вещь. Работа компилятора понимается легко, ему не надо для переменных volatile прописывать на 9-м уровне оптимизации, и приведение типов он понимает лучше, чем ИАР (ИМХО). А то что не так, как ИАР байты складирует - не проблема.
Go to the top of the page
 
+Quote Post
777777
сообщение Aug 9 2007, 05:34
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(ISD @ Aug 8 2007, 20:04) *
Редактор - субъективная вещь.

Вообще-то не очень, есть вещи вполне объективные. Если ты редактируешь два файла (например, .c и .h) то переключаться между ними по Ctrl+Tab не получится - он перебирает все открытые окна. Если ты нажимаешь Ctrl+F то в окне появляется слово, на котором стоит курсор. Может это и удобно в отдельных стучаях, но в нормальных редакторах оно выделено - на тот случай если я собрался искать другое слово - когда я начну его набирать, старое сразу удалится. А здесь мне нало сначала его удалить долбя кнопку Del, а потом ввести новое. Нет нормального auto indent'а - все, что он умеет это поставить курсор в позицию, на которой начинается предыдущая строка. Нормальные редакторы понимают, что если я напечатал новую скобку { то следующая строка должна быть с отступом. Счетчик в строке состояния показывает не номер позиции, а номер символа, поэтому табуляция считается за один символ. Добавление и удаление файлов лучше бы сделать в контекстном меню окна Project Workspace, а не запускать для этого отдельное окно - впрочем, это уже не сам редактор а IDE.

Цитата(ISD @ Aug 8 2007, 20:04) *
приведение типов он понимает лучше,

Приведение типов надо понимать не лучше или хуже, а по стандарту. А что, кто-то понимает их по-другому?

Цитата(ISD @ Aug 8 2007, 20:04) *
чем ИАР

что есть ИАР?

Цитата(ISD @ Aug 8 2007, 20:04) *
А то что не так, как ИАР байты складирует - не проблема.

Байты складировать компилятор должен так, как принято в данной аппаратной платформе. Я, конечно, понимаю, что это 8-разрядный процессор, но и он иногда работает с 16-разрядными словами - например, кладет в стек адрес возврата - так он это делает в порядке little-endian. А если учесть, что big-endian неэффективно для вычислений, т.к. байты суммируются или вычитаются начиная с младшего - то я вообще не понимаю зачем они приняли такой порядок в этом компиляторе.
Go to the top of the page
 
+Quote Post
ISD
сообщение Aug 11 2007, 18:11
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 13-02-07
Пользователь №: 25 320



Цитата(777777 @ Aug 9 2007, 08:34) *
Приведение типов надо понимать не лучше или хуже, а по стандарту. А что, кто-то понимает их по-другому?


В ИАР (под АВР) в строках с несколькими мат операциями надо четко приводить операнды к типу результата, иначе компилятор может неожиданный код сгенерить. В кеиле такое требуется, если уж очень запутанная формула считается. По поводу редактора - пользуйтесь любым другим, если родной не нравится. Недостатки у всех ИДЕ имеются, в кейле, например не более 4 точек останова в дебаггере, пока в watch переменную запишешь - мышка повесится, массив указателей на функции надо отдельно линкеру объяснять, и еще можно перечислять. ИМХО ИДЕ должны быть спроектированы так, чтобы при написании несложного проекта мин времени уходило на изучение доки, а если решил плотно работать - пожалуста, изучай, настраивай....
По поводу складирования байтов- по интерфейсам обычно MSB вперед идет, так вот в кейле byte=*((byte*)&word) даст MSB. а в little-endian - LSB.
ЗЫ. Я не претендую на категоричность своего мнения, так как не считаю себя абсолютным спецом как в кейле так и в ИАР. smile.gif
Go to the top of the page
 
+Quote Post
777777
сообщение Aug 12 2007, 09:51
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(ISD @ Aug 11 2007, 22:11) *
В ИАР (под АВР) в строках с несколькими мат операциями надо четко приводить операнды к типу результата, иначе компилятор может неожиданный код сгенерить. В кеиле такое требуется, если уж очень запутанная формула считается.

Значит в кейле такое тоже случается? И что значит приводить - писать char x = (char)<выражение>? А нельзя ли пример когда он генерит лажу? А то я как-то привык ему верить, может зря? smile.gif

Цитата(ISD @ Aug 11 2007, 22:11) *
По поводу редактора - пользуйтесь любым другим, если родной не нравится.

А что, в кейле можно в IDE прикрутить сторонний редактор? Кстати, еще одна бага, которая меня постоянно раздражает в его редакторе - по Ctrl+стрелка он переходит не на слово, а до ближайшего пробела. То есть словом он считает не то, что является словом для компилятора, а набол любых непробельных символов.

Цитата(ISD @ Aug 11 2007, 22:11) *
Недостатки у всех ИДЕ имеются, в кейле, например не более 4 точек останова в дебаггере,

Разве? Может это в триальной версии?

Цитата(ISD @ Aug 11 2007, 22:11) *
пока в watch переменную запишешь - мышка повесится,

Это да... maniac.gif

Цитата(ISD @ Aug 11 2007, 22:11) *
массив указателей на функции надо отдельно линкеру объяснять

Ну, справедлявости ради надо сказать что они и так оверлеят локальные переменные обычных функций, чтобы компилятор догадался откуда будет вызываться функция по указателю, он должен быть ну очень умным.
Go to the top of the page
 
+Quote Post
ISD
сообщение Aug 13 2007, 10:53
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 13-02-07
Пользователь №: 25 320



Цитата(777777 @ Aug 12 2007, 12:51) *
Значит в кейле такое тоже случается? И что значит приводить - писать char x = (char)<выражение>? А нельзя ли пример когда он генерит лажу? А то я как-то привык ему верить, может зря? smile.gif


Конкретного примера не приведу - лень копаться в прошлых исходниках, например,
word=(word)((lword)((lword)(word1)*(lword)(word2))/word3), если опустить приведение операндов к lword, может неверный результат случиться. На Keil по-моему пройдет, но если 5 операций в строке, то точно свалится. Так что лучше не лениться smile.gif

2silc - Keil скинул на ящик.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bychkov_vladimir   Компилятор Keil uVision2 для семейств С8051   Jun 22 2007, 13:49
- - TBI   Цитата(bychkov_vladimir @ Jun 22 2007, 17...   Jun 22 2007, 14:48
- - urasinov   могу выслать лекарстов для Keil uVision 3 v8.08. Е...   Jun 22 2007, 17:30
- - SALOME   Цитата(bychkov_vladimir @ Jun 22 2007, 20...   Jun 23 2007, 07:18
|- - tag   Цитата(SALOME @ Jun 23 2007, 11:18) С Kei...   Jun 25 2007, 10:13
- - urasinov   На форуме встречал ключ к Keil ссылка была на сайт...   Jun 24 2007, 19:04
|- - SALOME   Цитата(urasinov @ Jun 25 2007, 02:04) ссы...   Jun 25 2007, 03:50
- - -JonnS-   По моему мнению лучше скачать с сайта производител...   Jul 11 2007, 11:54
- - kolobok0   Цитата(bychkov_vladimir @ Jun 22 2007, 17...   Jul 13 2007, 11:22
- - Kirill Frolov   Цитата(bychkov_vladimir @ Jun 22 2007, 17...   Aug 6 2007, 23:15
|- - 777777   Цитата(Kirill Frolov @ Aug 7 2007, 03:15)...   Aug 7 2007, 13:04
|- - Snaky   Цитата(Kirill Frolov @ Aug 7 2007, 05:15)...   Aug 8 2007, 02:22
- - silc   что есть ИАР? IAR http://www.iar.com/ --- У кого ...   Aug 10 2007, 14:47
- - urasinov   Цитатапо Ctrl+стрелка он переходит не на слово, а ...   Aug 12 2007, 18:41


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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