Перейти к содержанию
    

Не обновляется переменная в TMS320F28335.

Проблема такая

gun_trigger = RD_EXT_FPGA(0x356);

if(gun_trigger == 1)
    gun_fire = 1;
else
    gun_fire = 0;

 

в gun_trigger считывается значение кнопки. В дебагере я вижу как gun_trigger красиво принимает значение кнопки - 1/0. gun_fire - ВСЕГДА НОЛЬ. Если я ставлю точку останова на строчке gun_fire = 1; - все обновляется красиво. обе переменные глобальные.

мне кажеться это какая то специфика данного контроллера. может кто нибудь встречался с подобным?

 

пожалуй gun_fire иногда выставляется в единицу. иногда функции кнопки отрабатываются.

 

В коде есть десятки, да нет пожалуй сотни переменных которые, по всей видимости апдейтируются корректно, ну по крайней мере проблемы не вылезли наружу. в данном случае по нажатию на кнопку не всегда отрабатываются функции кнопки поэтому я полез в код и обнаружил такую проблему.

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Прочие" есть.

 

А конкретно по проблеме: что накомпилялось смотреть и разбираться в коде (окно дизасма).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Прочие" есть.

 

А конкретно по проблеме: что накомпилялось смотреть и разбираться в коде (окно дизасма).

о чем поет ночная птица окно дизасма?

800         gun_trigger = RD_EXT_FPGA(0x356);
        C$L63:
00aab3:   76E00356    MOVL         XAR7, #0x200356
00aab5:   92C7        MOV          AL, *+XAR7[0]
00aab6:   9610        MOV          @0x10, AL
802         if(gun_trigger == 1)
00aab7:   5201        CMPB         AL, #0x1
00aab8:   ED04        SBF          C$L64, NEQ
803                gun_fire = 1;
00aab9:   56BF010F    MOVB         @0xf, #0x01, UNC
00aabb:   6F02        SB           C$L65, UNC
805             gun_fire = 0;
        C$L64:
00aabc:   2B0F        MOV          @0xf, #0

я не особый знаток асемблера но ничего криминального не вижу.

 

по моему я нашел проблему. переменная обнуляется где то дальше в коде. осталось найти где.

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"я не особый знаток асемблера…"

Да не ассемблера, а того ядра, котрое пользуете

 

"… но ничего криминального не вижу."

Чудесно, искренне рад за вас, но цитирую "В дебагере … gun_trigger красиво принимает значение кнопки - 1/0. gun_fire - ВСЕГДА НОЛЬ. Если я ставлю точку останова на строчке gun_fire = 1; - все обновляется красиво. обе переменные глобальные.", а почему вы не ставили точку останова сразу после "if then else" что б уведеть результат?

 

Ну и "переменная обнуляется где то дальше в коде. осталось найти где." Есть ли смайлик пожимающий плечами и разводящий руками?

Изменено пользователем Obam

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"я не особый знаток асемблера…"

Да не ассемблера, а того ядра, котрое пользуете

 

"… но ничего криминального не вижу."

Чудесно, искренне рад за вас, но цитирую "В дебагере … gun_trigger красиво принимает значение кнопки - 1/0. gun_fire - ВСЕГДА НОЛЬ. Если я ставлю точку останова на строчке gun_fire = 1; - все обновляется красиво. обе переменные глобальные.", а почему вы не ставили точку останова сразу после "if then else" что б уведеть результат?

 

Ну и "переменная обнуляется где то дальше в коде. осталось найти где." Есть ли смайлик пожимающий плечами и разводящий руками?

мистический случай. так и не нашел где переменная убивалась, хотя рыл два дня с еще одним товарищем. переписал всю логику заново и сейчас работает нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...