ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
62447
Rostu (08.07.2006 15:26, просмотров: 6194)
Практически Советы KEIL C51 исскуство программирования Я так понимаю, что для многих ето, как изобретения колеса. Но вот натыкаемся мы все на грабли. Посему могбы кто- то дать пару советов из своего опыта. Я не супер программист, но в пожилом возрасте как то надо выживать. Как писать код без волшибства? Например имеется KEIL C51, RTX51, AT89C51CC03. Написал 50К и тут началось... 1. KEIL в разных задачах TASK резервирует одно и тоже место в RAM. Поетому столкнулся со следующим запускается подпрограмма1 из TASK1, в ето время ее прерывает TASK2(что норнально для RTX51) и подпрограмма2 из TASK2, переписывает данные в подпрограмме1. Долго все проверял пока я ето понял. Теперь панический ужас, что делать, как защититься от такого. Попытался убать оптимизацию(была уровень 7),перестала работать вся программа Я в шоке, что делать дальще. 2. И еще KEIL выдает предупреждение, что например TASK1 и TASK2 вызывают одну и ту же подпрограмму. В одних случаях для меня ето не критично в других критично. Что делать? 3. Понасоздавал я огромных массивов, чтоб сохранить САN сообщения. Как в классике- больщой буффер для каждого канала. Теперь нехватает RAM(2К). Период прихода сообщений известен, есть САN протокол. Может достаточно по прерыванию сохранять сообщение в массиве программы, без буффера. Или пришло сообщение прерывание закрывает канал. Потом через время другая TASK считывает из канала даные и вновь разрещает прием данных из САN. Что посоветуете? 4. Надо ли бояться долгих прерываний и как их распознать? 5. При работе с медленной памятью SPI EEPROM, как не потерять данные. Как не тормозить выполнение других задач? 6. Если не тяжело подскажите, еще форумы где можно посоветовать. Спасибо за ответы. :-)