[an error occurred while processing this directive]
|
Битых полдня провел, пытаясь заставить работать программу для LPC2138 после перехода с GCC 3 на GCC 4.
Причем при пошаговой отладке через JTAG все работало тип-топ, а релизная версия глючила, шо собака.
Вообще-то я в глюки компиляторов не верю (по крайней мере проверенных компиляторов). Но тут мысль закралась: неужели что-нить с оптимизацией перемудрили?
Но не тут то было. В конце концов выяснилось, что я забыл применить семафор для диспетчеризации обращений к функциям, через которые производится запись/чтение портов внутри ПЛИС (через аппаратный SPI).
А в проекте, между прочим, "крутится" 4 параллельных процесса, которые туда регулярно лазят.
Как я мог забыть о необходимости этого семафора, и, главное, КАК ОНО РАБОТАЛО РАНЬШЕ - не понимаю.
Прийду домой, наверно напьюсь ;-D