0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
1

Зависания МК 8051F580 от Silicon Labs

02.04.2016, 21:22. Показов 4909. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вечер добрый.
Пишу прошивку под МК 8051F580 и столкнулся со следующей проблемой. Когда количество объявленных глобально переменных превышает некоторое число, МК перестает работать. При этом Keil не ругается и в симуляторе прога работает. Судя по отладчику, после запуска МК прога не переходит на секцию функции main(). Собственно вопрос, в чем причина зависания и как с этим бороться? Не уменьшать же количество переменных при таком солидном объеме памяти? Тем более и так беру их по минимуму возможного. Ни в AVR, ни в STM с такой проблемой не встречался.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2016, 21:22
Ответы с готовыми решениями:

Кто-нибудь имел дело с МК от Silicon Labs
Всем привет! Имею при себе микроконтроллер BGM13P от производителя Silicon Labs. Хочу использовать...

Кратковременные зависания всей системы + зависания при просмотре видео
Здравствуйте, Прошу помощи в правильной диагностике и возможного решения проблем с ПК. ...

MTK Labs
Наткнулся на одну интересную статью (ссылку скидывать не буду, легко гуглится) про компанию...

MediaTek Labs
Всем привет. Заранее прошу прощения, если тему создал не в том разделе. Хочу поинтересоваться,...

4
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
03.04.2016, 18:01 2
Например вот с этим работает:
Код
uint8_t len = 0, but = 0, ip[4] = {192, 168, 1, 1}, temp_ip[4] = {0, 0, 0, 0}, gate[4] = {192, 168, 1, 5}, mask[4] = {255, 255, 255, 0};
uint16_t temp_Port = 0, Port = 10001;
//const uint8_t str[23] = "~HELLO! W5500 works!!!^";
uint8_t xdata read_buf[50], INTPT = 0;
uint8_t RX_S[3] = {0, 0, 0};

uint8_t time_cnt[2] = {0, 0}, eep_buf[4];

uint8_t alarm_int = 0;
uint32_t time = 0;
uint16_t temp_cnt = 0, cur_cnt = 0, set_state = 0;

uint8_t ALARM = 0, IGBT = 0, Work = 0, Start = 0, Protect = 0, BLOCK_CHECK = 0;
А стоит добавить:
Код
uint16_t Ua = 0;
и МК не стартует.
0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
03.04.2016, 18:36 3
Пока выяснилось, что если убрать присвоение значений в объявлении переменных, то МК стартует нормально. Видимо, проблема исчерпана.
0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
03.04.2016, 23:45 4
Я для надежности обычно прописываю в них нули при объявлении, и в других МК с этим проблем не было. Тут первый раз столкнулся.
0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 278
04.04.2016, 12:52 5
Да, век живи - век учись :) Спасибо за подсказку :)
0
04.04.2016, 12:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2016, 12:52
Помогаю со студенческими работами здесь

cisco packettracer labs
Доброго времени Господа, у меня к вам вопросик. Есть ли у кого-нить сайт где можно скачать cisco...

Про Algorithm Labs
Кто-нибудь может скзать про условия работы в этой конторе? А то они подозрительно часто вакансии на...

Не найден IP labs.qt.nokia.com
Подскажите пожалуйста почему, может нет уже этого ресурса?

В Luxoft Labs требуется разработчик
Компания Luxoft Labs (группа компаний IBS), занимающаяся инновационными разработками на базе...

Требуются специалисты в Luxoft Labs
Компания Luxoft (группа компаний IBS), один из лидеров российского рынка IT и телекоммуникаций,...

Требуются специалисты в Luxoft Labs
Компания Luxoft (группа компаний IBS), объявляет об открытии вакансий в бизнес-подразделении Luxoft...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru