-
- Это все выполняется, тактовая сначала низкая, потом повышается. Дело в том, что карта инициализируется, я получаю от нее и служебную информацию (тип, производитель, объем и т.д.), правильно определяю тип partition, да и FAT определяется. Ошибка SergeT(331 знак., 03.06.2011 09:24)
- А программатор у Вас всегда к плате подключен? SD карточка не к тому же SPI что и программатор подключена? Была как то давно у меня проблема, правда, с Мега16 и ат45 (там SPI один и для программатора и для нужд девайса), после прошивки всё GDI(365 знак., 03.06.2011 12:22)
- Я уже перепробовал по всякому. После прошивки отключаю программатор от платы, сбрасываю кнопкой RESET - все работает. Снимаю питание с процессора - ошибки. - SergeT(03.06.2011 15:30)
- Все ли нужные переменные имеют начальную инициализацию? - GDI(03.06.2011 16:54)
- Вроде бы все, но еще раз посмотрю. А как это связано с тем, что после прошивки работает? - SergeT(03.06.2011 17:06)
- Это связано с тем, что после подачи питания не работает, ибо тогда в ОЗУ мусор всякий бывает, хотя компиляторы типа IARа на такой случай сами генерят инструкции для обнуления переменных. Еще как вариант, насколько быстро у Вас нарастает GDI(95 знак., 03.06.2011 17:29)
- Для исключения варианта с "мусором" в ОЗУ. Есть ли в IAR способ очистить все ОЗУ МК сразу после запуска программы? - SergeT(03.06.2011 19:40)
- BOD отключен, хотя я пробовал различные варианты с ним. Дело в том, что после того как питание устойчивое, я кнопкой делаю Reset - не помогает. А на счет мусора в ОЗУ, очень может быть (я тоже склоняюсь к этому мнению). Внимательно посмотрю код, SergeT(66 знак., 03.06.2011 19:16)
- "компиляторы типа IARа на такой случай сами генерят инструкции для обнуления переменных" - Вообще-то обнуление глобальных и статических переменных это не фича IAR, а стандарт языка Си. - rezident(03.06.2011 18:37)
- Спасибо за советы, решил проблему. SergeT(490 знак., 06.06.2011 11:32)
- Я конечно понимаю, что глобальные переменные -- зло. Но не настолько же. Кроме того: memset(varname, 0, sizeof(varname)) -- говнокод. - fk0(06.06.2011 12:33)
- Ага, уж не настолько, чтобы их переносить в main. Куда угодно - но в main? - Vladimir Ljaschko(06.06.2011 15:23)
- "Похоже компилятор IAR не инициализирует ее при объявлении" - Любой компилятор С не инициализирует локальную переменную. - Cepгeй Бopщ(06.06.2011 12:17)
- Я конечно понимаю, что глобальные переменные -- зло. Но не настолько же. Кроме того: memset(varname, 0, sizeof(varname)) -- говнокод. - fk0(06.06.2011 12:33)
- Спасибо за советы, решил проблему. SergeT(490 знак., 06.06.2011 11:32)
- Это связано с тем, что после подачи питания не работает, ибо тогда в ОЗУ мусор всякий бывает, хотя компиляторы типа IARа на такой случай сами генерят инструкции для обнуления переменных. Еще как вариант, насколько быстро у Вас нарастает GDI(95 знак., 03.06.2011 17:29)
- Вроде бы все, но еще раз посмотрю. А как это связано с тем, что после прошивки работает? - SergeT(03.06.2011 17:06)
- Все ли нужные переменные имеют начальную инициализацию? - GDI(03.06.2011 16:54)
- Я уже перепробовал по всякому. После прошивки отключаю программатор от платы, сбрасываю кнопкой RESET - все работает. Снимаю питание с процессора - ошибки. - SergeT(03.06.2011 15:30)
- А программатор у Вас всегда к плате подключен? SD карточка не к тому же SPI что и программатор подключена? Была как то давно у меня проблема, правда, с Мега16 и ат45 (там SPI один и для программатора и для нужд девайса), после прошивки всё GDI(365 знак., 03.06.2011 12:22)
- Скорее всего какие-то таймауты не выдержаны. После подачи питания нужно подождать, чтобы оно "устаканилось" на всех узлах схемы. При прошивке, как я понимаю, питание постоянно подано и МК только RESET дергают. - rezident(03.06.2011 00:46)
- Это все выполняется, тактовая сначала низкая, потом повышается. Дело в том, что карта инициализируется, я получаю от нее и служебную информацию (тип, производитель, объем и т.д.), правильно определяю тип partition, да и FAT определяется. Ошибка SergeT(331 знак., 03.06.2011 09:24)