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. Если не тяжело подскажите, еще форумы где можно посоветовать.
Спасибо за ответы.
:-)