» Keil uVision
PapaKarlo
Понятно. Ну что ж, может, действительно пора уже попробовать 4. Давайте попробуем и отпишемся у кого как.
Понятно. Ну что ж, может, действительно пора уже попробовать 4. Давайте попробуем и отпишемся у кого как.
С сайта кейлов:
What's New in C51
...
C51 Version 9.00 Release
...
# [Cx51 Compiler]
Corrected: constant folding of two negative array index values. For example:
unsigned char arr[512];
unsigned int i;
i = arr[i-1-5]; // incorrect in C51 V8: arr[i-4] instead of arr[i-6]
Похоже пора на 9-й двигать. Тем боле типа сервис пак (9.01) вышел.
What's New in C51
...
C51 Version 9.00 Release
...
# [Cx51 Compiler]
Corrected: constant folding of two negative array index values. For example:
unsigned char arr[512];
unsigned int i;
i = arr[i-1-5]; // incorrect in C51 V8: arr[i-4] instead of arr[i-6]
Похоже пора на 9-й двигать. Тем боле типа сервис пак (9.01) вышел.
vetvetvet
А ясней можно?
Цитата:
А ясней можно?
Цитата:
А можно код, компиленый этим, декомпилить обратно- можно все.
Evgeny972
есть робочая прошивка для процессора 51, ее декомпильнуть в исходный си код, подправить кое-что и опять скомпилировать кейлом в робочую прошивку для заливки в аппарат
есть робочая прошивка для процессора 51, ее декомпильнуть в исходный си код, подправить кое-что и опять скомпилировать кейлом в робочую прошивку для заливки в аппарат
Собрал пару проектов версией 9.01 из uv3.
Генерируемые бинарники ничем не отличаются от 8.18.
Наверное, это хорошо!
Кто знает, что за настройка такая в uv4 UVSOCK(TCP/IP) Settings: номер порта,
которая находится на вкладке Other (Главное меню: Edit->Configuration...) ?
Там еще есть галочка "Enabled".
Хелп среды говорит коротко, но не ёмко: "Currently, a TCP/IP port can be enabled or disabled."
Генерируемые бинарники ничем не отличаются от 8.18.
Наверное, это хорошо!
Кто знает, что за настройка такая в uv4 UVSOCK(TCP/IP) Settings: номер порта,
которая находится на вкладке Other (Главное меню: Edit->Configuration...) ?
Там еще есть галочка "Enabled".
Хелп среды говорит коротко, но не ёмко: "Currently, a TCP/IP port can be enabled or disabled."
vetvetvet
Цитата:
Что можно - "декомпильнуть" в ассемблерный вид.
Цитата:
ее декомпильнуть в исходный си кодНу такого я еще не видел.
Что можно - "декомпильнуть" в ассемблерный вид.
aalexandroff
Цитата:
Посмотрите здесь, но и вот эту переписку, из которой следует, что возможность якобы не работает для управления с другого компьютера.
Цитата:
Кто знает, что за настройка такая в uv4 UVSOCK(TCP/IP) Settings: номер порта
Посмотрите здесь, но и вот эту переписку, из которой следует, что возможность якобы не работает для управления с другого компьютера.
Пишу программы на 166 микроконтроллер. Столкнулся с проблемой. При отладке программы симулятор в встроенный в Keil работает, а при попытке использовать аппаратный отладчик (работает через COM порт и тоже встроен в Keil) терплю неудачу. Причем он бывает что в некоторых случаях он работает нормально, но стоит изменить код программы и перекомпилировать все сразу ломается......
Кто-нибудь знает как справится с этой проблеиой? Может какие-нибудь опции надо установить или еще что-нибудь сделать.
Кто-нибудь знает как справится с этой проблеиой? Может какие-нибудь опции надо установить или еще что-нибудь сделать.
aalexandroff
Цитата:
Работаю в 9.01 uv4. Пока все хорошо... Бинарники тоже совпадают.
Есть отдельные недочеты, но в целом - нравится.
Цитата:
Собрал пару проектов версией 9.01 из uv3.
Генерируемые бинарники ничем не отличаются от 8.18.
Наверное, это хорошо!
Работаю в 9.01 uv4. Пока все хорошо... Бинарники тоже совпадают.
Есть отдельные недочеты, но в целом - нравится.
Ответ на это сообщение от NameDyst.
Прежде, чем полагать, что компилятор имеет ошибку, попробуйте (как Вам уже советовали) получить ассемблерный листинг и разобраться, что происходит.
А пока - к Вам просьба: предоставьте листинг компиляции приведенного Вами фрагмента программы:
Код: bdata struct fd { unsigned a: 1;
unsigned b: 1;
unsigned c: 1;
unsigned d: 1;
unsigned e: 1;
unsigned f: 1;
unsigned g: 1;
unsigned h: 1; }
union { unsigned char ch; struct fd bb: } uu;
uu.ch=0xFF;
uu.bb.a=0;
uu.bb.b=0;
printf(" \n uu.ch= %X ", uu.ch);
Прежде, чем полагать, что компилятор имеет ошибку, попробуйте (как Вам уже советовали) получить ассемблерный листинг и разобраться, что происходит.
А пока - к Вам просьба: предоставьте листинг компиляции приведенного Вами фрагмента программы:
Код: bdata struct fd { unsigned a: 1;
unsigned b: 1;
unsigned c: 1;
unsigned d: 1;
unsigned e: 1;
unsigned f: 1;
unsigned g: 1;
unsigned h: 1; }
union { unsigned char ch; struct fd bb: } uu;
uu.ch=0xFF;
uu.bb.a=0;
uu.bb.b=0;
printf(" \n uu.ch= %X ", uu.ch);
Hi, All !
Кто ставил 9.02 скинте, пожалуйста, из файла c15\hlp\Release_Notes.htm всё что находится между строками:
"The following sections list the changes instituted in each release of the C51 toolset."
и
"C51 Version 9.01 Release "
Заранее спасибо!
Кто ставил 9.02 скинте, пожалуйста, из файла c15\hlp\Release_Notes.htm всё что находится между строками:
"The following sections list the changes instituted in each release of the C51 toolset."
и
"C51 Version 9.01 Release "
Заранее спасибо!
Присоединяюсь к PapaKarlo.
Прежде чем обвинять всех и вся, разберись в себе. В частности, прочиталь правила и синаксис объявлений переменных, особенно битовых.
Кстати, если Franklin в твоем случае генерирует рабочий код, значит он вообще далек от ANSI.
Прежде чем обвинять всех и вся, разберись в себе. В частности, прочиталь правила и синаксис объявлений переменных, особенно битовых.
Кстати, если Franklin в твоем случае генерирует рабочий код, значит он вообще далек от ANSI.
ddddF, Ваше сообщение в другой теме:
Цитата:
1. Если не сложно, дайте ответ на мой предыдущий вопрос.
Хочется знать что там наисправляли, "улучшили" по сравнению с 9.01.
2. Ну и описание того на что напоролись в 9.02.
Цитата:
Возникли про блемы с 9.02, вернулся на 9.01
1. Если не сложно, дайте ответ на мой предыдущий вопрос.
Хочется знать что там наисправляли, "улучшили" по сравнению с 9.01.
2. Ну и описание того на что напоролись в 9.02.
Вот откопал у себя файлик (когда-то скачал у китайцев)
http://rapidshare.com/files/120495920/Keil_Support_Knowledgebase.chm.html
Иногда полезно почитать.
http://rapidshare.com/files/120495920/Keil_Support_Knowledgebase.chm.html
Иногда полезно почитать.
aalexandroff
Особых улучшений не заметил, правда работал недолго - 5-6 дней, заметил только, что вкладочки раскрашены цветом - мне, честно сказать, не особенно это понравилось.
Были банальные зависания с закрытием программы - нечасто, но с 9.01 такого не было вообще. Почему-то не удавалось периодически в Watch менять Number Base hex/dec. Как-то странновато шла отладка.
На объективность не претендую, возможно указанных проблем у других не будет, тем не менее, лично я перешел обратно на 9.01, которая у меня работает стабильно.
Особых улучшений не заметил, правда работал недолго - 5-6 дней, заметил только, что вкладочки раскрашены цветом - мне, честно сказать, не особенно это понравилось.
Были банальные зависания с закрытием программы - нечасто, но с 9.01 такого не было вообще. Почему-то не удавалось периодически в Watch менять Number Base hex/dec. Как-то странновато шла отладка.
На объективность не претендую, возможно указанных проблем у других не будет, тем не менее, лично я перешел обратно на 9.01, которая у меня работает стабильно.
Добрый всем день.
Я работаю с кейлом уже несколько лет (как и мои колеги).
Давным давно известен "глюк компилятора".
Поробуйте откомпилировать строку в которой содержится символ "э", например строку
char tmp[]={"джэячс"};
После компиляции пропадает символ "э" , не заменяется пробелом или что-то полобное а именно выбрасывается и получается после компиляции "джячс".
Помогает только "\x0fd" вместо "э", например "дж\x0fdячс".
Никому не попадалось более "изящьное" решение?
Я работаю с кейлом уже несколько лет (как и мои колеги).
Давным давно известен "глюк компилятора".
Поробуйте откомпилировать строку в которой содержится символ "э", например строку
char tmp[]={"джэячс"};
После компиляции пропадает символ "э" , не заменяется пробелом или что-то полобное а именно выбрасывается и получается после компиляции "джячс".
Помогает только "\x0fd" вместо "э", например "дж\x0fdячс".
Никому не попадалось более "изящьное" решение?
Добрый день.
Помогите, пожалуйста. Есть Keil uVision 2. В нем нужно написать программу:
Написать программу нахождения наибольшего общего делителя по алгоритму Евклида.
Спасибо.
Помогите, пожалуйста. Есть Keil uVision 2. В нем нужно написать программу:
Написать программу нахождения наибольшего общего делителя по алгоритму Евклида.
Спасибо.
Привет. Подскажите пожалуйста.
Как зажечь один светодиод с помощью кнопки. Т.е. нажимаем кнопку светодиод горит. Опять нажимаем кнопку светодиод тухнет.
Микроконтроллер ADuC842.
На светодиод необходимо подать 0, кнопка тоже работает при 0.
Как просто зажечь светодиод я разобрался. Но с кнопкой не могу разобраться.
Порты прописывал следующим образом: sbit P1_1=0x11 (например светодиод) и P2_1=0x22 (например кнопка). Адреса портов 0x00 условные, т.е. по спецификации я знаю правильный адрес, это для примера привел.
Спасибо.
Как зажечь один светодиод с помощью кнопки. Т.е. нажимаем кнопку светодиод горит. Опять нажимаем кнопку светодиод тухнет.
Микроконтроллер ADuC842.
На светодиод необходимо подать 0, кнопка тоже работает при 0.
Как просто зажечь светодиод я разобрался. Но с кнопкой не могу разобраться.
Порты прописывал следующим образом: sbit P1_1=0x11 (например светодиод) и P2_1=0x22 (например кнопка). Адреса портов 0x00 условные, т.е. по спецификации я знаю правильный адрес, это для примера привел.
Спасибо.
Цитата:
Привет. Подскажите пожалуйста.
Как зажечь один светодиод с помощью кнопки. Т.е. нажимаем кнопку светодиод горит. Опять нажимаем кнопку светодиод тухнет.
Микроконтроллер ADuC842.
На светодиод необходимо подать 0, кнопка тоже работает при 0.
Как просто зажечь светодиод я разобрался. Но с кнопкой не могу разобраться.
Порты прописывал следующим образом: sbit P1_1=0x11 (например светодиод) и P2_1=0x22 (например кнопка). Адреса портов 0x00 условные, т.е. по спецификации я знаю правильный адрес, это для примера привел.
Спасибо.
Причём тут кейл?
Например так:
Заведи битик fLedOn (состояние светодиода).
Инициализируй его 1 (не горит).
При нажатии кнопки меняй состояния бита (0 или 1).
Записывай состояние бита на пин светодиода (горит не горит).
Устранение дребезга кнопки отдельная тема.
У меня простой вопрос, но как его решить я не понимаю. Нужно сделать протокол отладки для программы, но я не знаю где в keil подсчитывается системное время. Кто может помогите пожалуйста.
Fraddy
Цитата:
Чтобы не затрагивать установку на рабочем компьютере, установил под VmWare:
1) версию, с которой я работаю: 8.08
2) драйвер от SiLabs
3) поверх - версию 9.0
Собрал рабочий проект, размер немного увеличился. Судя по карте памяти - за счет библиотечного кода С.
Сделал новый проект для SiC8051F331 из пустой процедуры main(). В ответ на попытку запустить симулятор Windows предлагает послать отчет в Microsoft о фатальной ошибке uVision4 IDE. То же самое происходит, если открыть существующий mpw из uVision3 - при выходе из оболочки та сообщает, что сохранит файлы проекта и mpw в новом формате - и слёт. На релиз как-то не тянет...
Из изменений, которые удалось заметить - изменился вид кнопочек, хинты (т.е. просто украшательство). Что однозначно заметно - при закрытии окна свойств проекта заметно меньше задержка (у меня в mpw десяток проектов, даже при отмене изменений в установках проекта uVision3 задумывается на несколько секунд). С учетом аварийного завершения это - единственное достижение Keil, которое мне удалось обнаружить в новой IDE. Более подробно пока не тестировал.
В общем, первое знакомство несколько огорчает.
Цитата:
Вышел 9й кейл.
Чтобы не затрагивать установку на рабочем компьютере, установил под VmWare:
1) версию, с которой я работаю: 8.08
2) драйвер от SiLabs
3) поверх - версию 9.0
Собрал рабочий проект, размер немного увеличился. Судя по карте памяти - за счет библиотечного кода С.
Сделал новый проект для SiC8051F331 из пустой процедуры main(). В ответ на попытку запустить симулятор Windows предлагает послать отчет в Microsoft о фатальной ошибке uVision4 IDE. То же самое происходит, если открыть существующий mpw из uVision3 - при выходе из оболочки та сообщает, что сохранит файлы проекта и mpw в новом формате - и слёт. На релиз как-то не тянет...
Из изменений, которые удалось заметить - изменился вид кнопочек, хинты (т.е. просто украшательство). Что однозначно заметно - при закрытии окна свойств проекта заметно меньше задержка (у меня в mpw десяток проектов, даже при отмене изменений в установках проекта uVision3 задумывается на несколько секунд). С учетом аварийного завершения это - единственное достижение Keil, которое мне удалось обнаружить в новой IDE. Более подробно пока не тестировал.
В общем, первое знакомство несколько огорчает.
PapaKarlo
Цитата:
Аналогично. Подождем.
Цитата:
В общем, первое знакомство несколько огорчает.
Аналогично. Подождем.
PapaKarlo, у меня наоборот - исчезли странные глюки, связанные со sprintf (иногда не работал параметр точности). Да и в целом среда как-то быстрее работает.
UPD: Операционка - Win7, x64
UPD: Операционка - Win7, x64
Roman Gl
Цитата:
Цитата:
Цитата:
исчезли странные глюки, связанные со sprintfЗначит, поправили библиотеку.
Цитата:
целом среда как-то быстрее работаетЯ слишком мало тестировал, чтобы заметить разницу в быстродействии компиляторов, хотя на моем стареньком Athlon 3800x2, WinXP 32 bit компиляция среднего проекта занимает не так уж много времени. Кое-какую оптимизацию в uV4 я уже упоминал, но это мало радует в виду упомянутых проблем. Если учесть сохранившиеся ошибки и местами "замечательный" код, генерируемый компилятором (как и в старой версии), то... В общем, пока не вижу особого смысла в переходе на новую версию, но это, разумеется, ИМХО. Мнение и опыт каждого ценны - для того и форум.
PapaKarlo
Понятно. Ну что ж, может, действительно пора уже попробовать 4. Давайте попробуем и отпишемся у кого как.
Понятно. Ну что ж, может, действительно пора уже попробовать 4. Давайте попробуем и отпишемся у кого как.
С сайта кейлов:
What's New in C51
...
C51 Version 9.00 Release
...
# [Cx51 Compiler]
Corrected: constant folding of two negative array index values. For example:
unsigned char arr[512];
unsigned int i;
i = arr[i-1-5]; // incorrect in C51 V8: arr[i-4] instead of arr[i-6]
Похоже пора на 9-й двигать. Тем боле типа сервис пак (9.01) вышел.
What's New in C51
...
C51 Version 9.00 Release
...
# [Cx51 Compiler]
Corrected: constant folding of two negative array index values. For example:
unsigned char arr[512];
unsigned int i;
i = arr[i-1-5]; // incorrect in C51 V8: arr[i-4] instead of arr[i-6]
Похоже пора на 9-й двигать. Тем боле типа сервис пак (9.01) вышел.
Собрал пару проектов версией 9.01 из uv3.
Генерируемые бинарники ничем не отличаются от 8.18.
Наверное, это хорошо!
Кто знает, что за настройка такая в uv4 UVSOCK(TCP/IP) Settings: номер порта,
которая находится на вкладке Other (Главное меню: Edit->Configuration...) ?
Там еще есть галочка "Enabled".
Хелп среды говорит коротко, но не ёмко: "Currently, a TCP/IP port can be enabled or disabled."
Генерируемые бинарники ничем не отличаются от 8.18.
Наверное, это хорошо!
Кто знает, что за настройка такая в uv4 UVSOCK(TCP/IP) Settings: номер порта,
которая находится на вкладке Other (Главное меню: Edit->Configuration...) ?
Там еще есть галочка "Enabled".
Хелп среды говорит коротко, но не ёмко: "Currently, a TCP/IP port can be enabled or disabled."
aalexandroff
Цитата:
Посмотрите здесь, но и вот эту переписку, из которой следует, что возможность якобы не работает для управления с другого компьютера.
Цитата:
Кто знает, что за настройка такая в uv4 UVSOCK(TCP/IP) Settings: номер порта
Посмотрите здесь, но и вот эту переписку, из которой следует, что возможность якобы не работает для управления с другого компьютера.
Предыдущая тема: Бесплатный софт, Freeware
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.