AlexandrY 3 21 марта, 2021 Опубликовано 21 марта, 2021 · Жалоба On 3/19/2021 at 6:04 PM, murmur said: Как бороться с этой бедой? Добавлю - если карта единожды извлечена, то потом, даже если ее вставить, SD_STATE=BSP_SD_GetCardState(); всегда выдает ошибку... Всегда есть топорный способ. Очистить все переменные программного модуля и освободить всю занятую им динамическую память. После чего все можно стартовать как после сброса. Чтобы все делать без напряга в линкере назначить отдельную секцию памяти для программного модуля. И стирать используя границы секции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 45 21 марта, 2021 Опубликовано 21 марта, 2021 · Жалоба 37 minutes ago, AlexandrY said: Чтобы все делать без напряга ... Это и без всяких секций можно сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 40 22 марта, 2021 Опубликовано 22 марта, 2021 (изменено) · Жалоба 10 часов назад, murmur сказал: я стараюсь сделать дружественный для пользователя интерфейс. В окошке иконки двух носителей, хочется, чтобы отображалось состояние обоих, с изменением иконки. А состояния 3 - нет носителя, носитель есть и с ним не все в порядке, носитель есть и с ним все в порядке. у меня к Вам вопрос - а если пользователь надумает вставить USB флешку, не вынимая при этом SD карту, как тогда поведет себя ваш алгоритм? Если конкретно мой - работать будет с тем, что последнее вставлено. Ну коли уж так, то и делайте по правилам и до конца - если вставлена сд и усб, то и работать они должны одновременно, а то получается так, поставили мотор на каждое колесо, но провода подвели только к 2м, а вторые 2 - через рубильник, который должен кто-то включать, получается как-то не очень "дружественно", не так ли?))) 10 часов назад, murmur сказал: За ваши советы по архитектуре спасибо, но я сделаю по своему. Да лишь бы в радость, но надо стараться делать, как правильно, иначе потом, когда забудете, что тут понаписали и сколь костылей вставили - потом придется все заново писать... Хотя может это и к лучшему в данной ситуации. 9 часов назад, AlexandrY сказал: Всегда есть топорный способ. Тут как раз такой тс-ом и представлен, а ваш - это просто ужас....Тихий.. Изменено 22 марта, 2021 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 22 марта, 2021 Опубликовано 22 марта, 2021 · Жалоба 9 hours ago, x893 said: Это и без всяких секций можно сделать. Что - это? Соревнуемся в телепатии? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 45 22 марта, 2021 Опубликовано 22 марта, 2021 · Жалоба 1 hour ago, AlexandrY said: Что - это? Соревнуемся в телепатии? Я пока научился вызывать телефонный звонок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 3 апреля, 2021 Опубликовано 3 апреля, 2021 (изменено) · Жалоба Не буду создавать отдельную тему. Похоже проблема с неким конфликтом памяти, ибо Такой вот мусор попадает в SDFatFS на этапе, когда инициализируется USB, еще ДО ТОГО, как к SDFatFS идет обращение. Естественно, когда я потом пишу if (f_mount(&SDFatFS, (TCHAR const*)SDPath, 0) == FR_OK), то обращение идет не к SD карте, а куда-то на Марс.... Отследить, где происходит эта поломка брейкпоинтами не удалось, библиотека USB в HAL живет своей жизнью. У меня такой вопрос - а можно ли как-то в отладчике KEIL перехватить обращение к конкретной переменной? Чтоб программа останавливалась при изменении данной переменной и можно было бы отследить, где это произошло? Я тупо поиском по тексту проекта прошлась - нигде нет обращения, кроме участка кода, который запскается значительно позднее. Пока что ради эксперимента я завела политически нейтральную переменную DISK_FatFS и обращаюсь к дискам только через нее. Но все же гложет тот факт, что в памяти какой-то барабашка завелся.... Изменено 3 апреля, 2021 пользователем murmur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 3 апреля, 2021 Опубликовано 3 апреля, 2021 · Жалоба Хм, а то, что адреса обоих структур у вас NULL - не смущает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 3 апреля, 2021 Опубликовано 3 апреля, 2021 · Жалоба 4 minutes ago, xvr said: Хм, а то, что адреса обоих структур у вас NULL - не смущает? Просто неудачный этап для снятия скриншота выбрала. Когда появляется правильный адрес, то туда тоже попадает мусор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться