|
Компилятор Keil uVision2 для семейств С8051, Компилятор Keil uVision2 |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 20)
|
Jun 22 2007, 14:48
|
Частый гость
 
Группа: Свой
Сообщений: 170
Регистрация: 11-05-07
Пользователь №: 27 656

|
Цитата(bychkov_vladimir @ Jun 22 2007, 17:49)  подскажите действительно ли это так и как с этим бороться. Да это действительно так. Можно использовать бесплатный компилятор для 51 семейства, а затем HEX файл загружать в контроллер через Silabs IDE или Programmer. Второй вариант, купить полный Keil uVision. Третий вариант, достать полный Keil uVision.
|
|
|
|
|
Jun 23 2007, 07:18
|

Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349

|
Цитата(bychkov_vladimir @ Jun 22 2007, 20:49)  Добрый день. Компилятор Keil uVision2, включаемый в комплект поставки SiLabs IDE
Спасибо ! С Keil uVision2 вас ждет еще одно разочарование. Он не работает с нормальной математикой. Может кто подскажет как подключить функции с float?
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Jun 25 2007, 03:50
|

Местный
  
Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349

|
Цитата(urasinov @ Jun 25 2007, 02:04)  ссылка была на сайт telesys.ru. На телесис искать полезную информацию, все равно как гайку 2мм в ведре б/у метизов... Хотя может есть, неизвестная мне метода...
--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
|
|
|
|
|
Jun 25 2007, 10:13
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561

|
Цитата(SALOME @ Jun 23 2007, 11:18)  С Keil uVision2 вас ждет еще одно разочарование. Он не работает с нормальной математикой. Может кто подскажет как подключить функции с float? ...это кажется одно из ограничений демо-версии (как и ограниченный размер кода), надо просто найти полную версию.
|
|
|
|
|
Jul 11 2007, 11:54
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 7-05-07
Из: Болгария
Пользователь №: 27 577

|
По моему мнению лучше скачать с сайта производителя Keil uVision 3 v8.08 eval и вылечить сотв. образом. См. сайт сахара поиском слово "клизма". Тогда будет и "float". Потом можно интегрировать компильатор в "родной IDE" силабса.
|
|
|
|
|
Jul 13 2007, 11:22
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(bychkov_vladimir @ Jun 22 2007, 17:49)  ...Компилятор Keil uVision2, включаемый в комплект поставки SiLabs IDE, имеет ограничение по объему генерируемого hex-кода... ышо данный компилятор иногда лажается в сгенерённом коде пропускает (очень редко, на больших проектах) строчки...за тройкой - пока не замечено... удачи Вам (круглый)
|
|
|
|
|
Jul 31 2007, 15:23
|
Участник

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

|
Есть Keil uVision2 (по-моему лицензионная). float - без проблем, установлены dll под jtag. Весит 28М. Переносится без установки. Отладчик и компилятор произвели приятное впечатление. Могу поделиться.
|
|
|
|
|
Aug 6 2007, 23:15
|

Частый гость
 
Группа: Новичок
Сообщений: 111
Регистрация: 10-02-07
Из: St.Petersburg, Russia
Пользователь №: 25 241

|
Цитата(bychkov_vladimir @ Jun 22 2007, 17:49)  подскажите действительно ли это так и как с этим бороться. Разумеется так. Халявы нахаляву не бывает! Как бороться: 1. Мучаться так. 2. Купить полноценную версию. 3. Мучаться с SDCC. 4. Мучаться с другими компиляторами. В частности, возможно имеет смысл мучаться с продукцией фирмы HiTech software. 5. Украсть... Цитата(SALOME @ Jun 23 2007, 11:18)  С Keil uVision2 вас ждет еще одно разочарование. Он не работает с нормальной математикой. Может кто подскажет как подключить функции с float? У меня работает. "Что я делаю не так?" © Нет, разумеется он работает с float и только с float. С double не работает, о чём честно указано в документации. Если уж совсем не работает, то можно посоветовать использовать сторонние IEEE 754 библиотеки... Цитата(777777 @ Aug 3 2007, 10:07)  Если не считать абсолютно уродского редактора, Почему я использую Vim. Цитата то у него только одна существенная проблема - переменные int и long он располагает в порядке big-endian. Проблема когда они лежат в абсолютно уродском intel-формате. Аргументирую. При ошибках с неверным приведением типов, если int лежит в motorola формате, программа получает неверное значение и валится сразу. Если число лежит в intel-формате -- ошибка будет обнаруживаться долго и мучительно, будет масса случайных непонятных сбоев и друих чудес.
--------------------
[ZX]
|
|
|
|
|
Aug 8 2007, 02:22
|

Mute Beholder
  
Группа: Свой
Сообщений: 260
Регистрация: 4-04-07
Из: Третья планета от Солнца
Пользователь №: 26 754

|
Цитата(Kirill Frolov @ Aug 7 2007, 05:15)  Нет, разумеется он работает с float и только с float. С double не работает, о чём честно указано в документации. Для Keil и float и double и даже long double это просто одно и тоже - они не различаются ни порядком ни точностью (в чем можно убедиться просмотрев [...\Keil\C51\INC\FLOAT.H]). А демо-версия действительно помимо ограничения на размер кода (2 кб) не дает работать с числами с плавающей точкой.
--------------------
Common sense is not so common.
|
|
|
|
|
Aug 8 2007, 16:04
|
Участник

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

|
Цитата(777777 @ Aug 3 2007, 09:07)  Если не считать абсолютно уродского редактора, то у него только одна существенная проблема - переменные int и long он располагает в порядке big-endian. Редактор - субъективная вещь. Работа компилятора понимается легко, ему не надо для переменных volatile прописывать на 9-м уровне оптимизации, и приведение типов он понимает лучше, чем ИАР (ИМХО). А то что не так, как ИАР байты складирует - не проблема.
|
|
|
|
|
Aug 9 2007, 05:34
|

Профессионал
    
Группа: Участник
Сообщений: 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 неэффективно для вычислений, т.к. байты суммируются или вычитаются начиная с младшего - то я вообще не понимаю зачем они приняли такой порядок в этом компиляторе.
|
|
|
|
|
Aug 10 2007, 14:47
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 27-06-07
Пользователь №: 28 748

|
что есть ИАР? IAR http://www.iar.com/--- У кого есть правильные иар или кеил, пожалуйста скинте на dc.dc@маил.ру, разбив письмо до 5 мегов.
|
|
|
|
|
Aug 11 2007, 18:11
|
Участник

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

|
Цитата(777777 @ Aug 9 2007, 08:34)  Приведение типов надо понимать не лучше или хуже, а по стандарту. А что, кто-то понимает их по-другому? В ИАР (под АВР) в строках с несколькими мат операциями надо четко приводить операнды к типу результата, иначе компилятор может неожиданный код сгенерить. В кеиле такое требуется, если уж очень запутанная формула считается. По поводу редактора - пользуйтесь любым другим, если родной не нравится. Недостатки у всех ИДЕ имеются, в кейле, например не более 4 точек останова в дебаггере, пока в watch переменную запишешь - мышка повесится, массив указателей на функции надо отдельно линкеру объяснять, и еще можно перечислять. ИМХО ИДЕ должны быть спроектированы так, чтобы при написании несложного проекта мин времени уходило на изучение доки, а если решил плотно работать - пожалуста, изучай, настраивай.... По поводу складирования байтов- по интерфейсам обычно MSB вперед идет, так вот в кейле byte=*((byte*)&word) даст MSB. а в little-endian - LSB. ЗЫ. Я не претендую на категоричность своего мнения, так как не считаю себя абсолютным спецом как в кейле так и в ИАР.
|
|
|
|
|
Aug 12 2007, 09:51
|

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

|
Цитата(ISD @ Aug 11 2007, 22:11)  В ИАР (под АВР) в строках с несколькими мат операциями надо четко приводить операнды к типу результата, иначе компилятор может неожиданный код сгенерить. В кеиле такое требуется, если уж очень запутанная формула считается. Значит в кейле такое тоже случается? И что значит приводить - писать char x = (char)<выражение>? А нельзя ли пример когда он генерит лажу? А то я как-то привык ему верить, может зря?  Цитата(ISD @ Aug 11 2007, 22:11)  По поводу редактора - пользуйтесь любым другим, если родной не нравится. А что, в кейле можно в IDE прикрутить сторонний редактор? Кстати, еще одна бага, которая меня постоянно раздражает в его редакторе - по Ctrl+стрелка он переходит не на слово, а до ближайшего пробела. То есть словом он считает не то, что является словом для компилятора, а набол любых непробельных символов. Цитата(ISD @ Aug 11 2007, 22:11)  Недостатки у всех ИДЕ имеются, в кейле, например не более 4 точек останова в дебаггере, Разве? Может это в триальной версии? Цитата(ISD @ Aug 11 2007, 22:11)  пока в watch переменную запишешь - мышка повесится, Это да... Цитата(ISD @ Aug 11 2007, 22:11)  массив указателей на функции надо отдельно линкеру объяснять Ну, справедлявости ради надо сказать что они и так оверлеят локальные переменные обычных функций, чтобы компилятор догадался откуда будет вызываться функция по указателю, он должен быть ну очень умным.
|
|
|
|
|
Aug 13 2007, 10:53
|
Участник

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

|
Цитата(777777 @ Aug 12 2007, 12:51)  Значит в кейле такое тоже случается? И что значит приводить - писать char x = (char)<выражение>? А нельзя ли пример когда он генерит лажу? А то я как-то привык ему верить, может зря?  Конкретного примера не приведу - лень копаться в прошлых исходниках, например, word=(word)((lword)((lword)(word1)*(lword)(word2))/word3), если опустить приведение операндов к lword, может неверный результат случиться. На Keil по-моему пройдет, но если 5 операций в строке, то точно свалится. Так что лучше не лениться 2silc - Keil скинул на ящик.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|