|
|
  |
Баги симуляторов ... |
|
|
|
Nov 19 2007, 07:41
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
AVR Studio 4.13.555 Обычно вечером пишу в программе "завет на завтра", утром компильнул - выскочили ошибки - сразу вспомнил, что делать. А сегодня не так. Код CP2I Yh,Yl,high(CmdSyn),low(CmdSyn) тут неправильно.
(где CP2I - макрос : cpi @0,@2 brne PC+2 cpi @1,@3 ) Результат? Да: "Assembly complete, 0 errors. 0 warnings" Аргументы макросов не проверяются? проверил: ldi r16,low(CmdSyn) тут неправильно. Сразу 14 ошибок, на каждую русскую букву.
Сообщение отредактировал Maik-vs - Nov 19 2007, 07:47
|
|
|
|
|
Nov 20 2007, 03:10
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

|
Цитата(Maik-vs @ Nov 19 2007, 16:41)  Код CP2I Yh,Yl,high(CmdSyn),low(CmdSyn) тут неправильно.
(где CP2I - макрос : cpi @0,@2 brne PC+2 cpi @1,@3 ) Результат? Да: "Assembly complete, 0 errors. 0 warnings" Аргументы макросов не проверяются? проверил: ldi r16,low(CmdSyn) тут неправильно. Сразу 14 ошибок, на каждую русскую букву. Не вижу противоречий, макросу передаётся всё, что указано в параметрах вызова. Просто в вашем случае не используется @4="тут" @5="неправильно." Добавьте в определение вашего макроса: Код .macro CP2I ldi r16,@2 @4 @5 .end И получите свои 14 ошибок.
|
|
|
|
|
Nov 20 2007, 10:26
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(ae_ @ Nov 20 2007, 07:10)  Не вижу противоречий, макросу передаётся всё, что указано в параметрах вызова. Просто в вашем случае не используется @4="тут" @5="неправильно." Добавьте в определение вашего макроса: Код .macro CP2I ldi r16,@2 @4 @5 .end И получите свои 14 ошибок. А с какого перепугу пробел стал разделителем аргументов?!! У меня при подстановке аргументов в макрос возникает Код cpi Yl, low(CmdSyn) тут неправильно. И типа всё нормально. То же самое, написанное в программе, вызывает 14 ошибок. Это, ребята, бага.
|
|
|
|
|
Nov 20 2007, 15:27
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 12-02-06
Пользователь №: 14 242

|
Мне по спешке было проще заменить мегу48 на мегу 8, не мог запустить на асме уарт. По свободе попробую исчо. Но даташит это песня.
|
|
|
|
|
Nov 22 2007, 10:47
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(_Pasha @ Nov 20 2007, 16:20)  Небось, AVRASM 2 ??? Небось. Попробовал поменять на асм1, мама дорогая!  насыпал 234 ошибки... Я поубирал комментарии //.. и /*.. */, всё равно... Ниасилил.
|
|
|
|
|
Sep 24 2008, 17:09
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата(Цыкетчик @ Sep 24 2008, 13:38)  Не знали о таких? Как это, нельзя найти в железе, а можно В ПРИНЦИПЕ найти в СИмуляторе? Т.е. я на реальном самолете В ПРИНЦИПЕ не могу попасть в грозовой фронт, а на симуляторе могу? 1. В основе симулятора лежит модель МК. Вы слышали про errata, котрые появляются в процесее эксплуатации сего МК? Что, эти errata регулярно перекладываются на модель МК в симуляторе????? 2. Сделайте в протеусе, или чем-то там еще, устройство, которое содержит под 500 компонентов, из которых пара - это FPGA достаточно жирных, и каждая имеет свою конфигурацию, а остальные примерно 40% компонентов - это ИМС, которые начали выпускаться, ну, например, в прошлом году. 3. Смоделируйте в симуляторе разводку платы в Вашем симуляторе. Вы не сталкивались с ситуацией, типа, на макетке работает, а серийной плате - нет? 4. Ну а теперь скажите, и что же Вы предполагаете выловить симулятором, что невозможно выловить в реальном устройстве?  Вы в речке плавать учились тоже по компьютерной модели? А как ремонтировать неисправную аппаратуру? Надеюсь Вы вооружаетесь всякими там осциллографами, тестерами и прочей измериловкой, и начинаете ВЫЧЛЕНЯТЬ неисправность.
|
|
|
|
|
Feb 20 2009, 12:52
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896

|
В АВРСтудии 4.12сп4 была замечена следующая бага (или небага ??). На Tiny13 запущен таймер с прерыванием при переполнении который отсчитывает циклы работы. По истечении 100 циклов включается sleep (PowerDown mode) с пробуждением по внешнему пину. МК благополучно засыпает, просыпается по внешнему пину. Вроде бы все как надо... но во время спячки продолжает молотить таймер, чего в режиме PowerDown по определению быть не должно ! И в результате просыпается МК также при переполнении таймера. Может я чего-то упустил из виду ?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|