|
Не лезет в память, как это исправить? |
|
|
|
Oct 16 2015, 11:17
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Пишу прогу для СС3200 - у этого проца всего 256 Кбайт памяти, из которой 64 кБайт используется как память для хранения констант и прочего остается ~192 кБайтпод код стек и др. Я изменил скрипт линкера, так как мне нужна очень большая куча - под нее я выделил 128 кБайт - это место для RTOS, буферов для скидывания на SD и прочего 2048 под стек, осталное на код. Пока работал с портом, все хватало - начал дописывать функции для работы с WiFi и сокетами - выскакивает ошибка, что мол не лезет в flash Я компилирую при отключеной оптимизации, если включаю ее - начинает влезать. но мне это не очень нравится, так как эта оптимизация может отключить некоторые куски кода, которые я неверно или в чем то неправильно написал ошибки конечно исправляются, но как сделать с отключенной оптимизацией и вообще, почему такая ошибка возникает ведь суммарно объем кода получается меньше чем место под код в моем СС3200?
|
|
|
|
|
 |
Ответов
(45 - 56)
|
Oct 20 2015, 07:48
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Цитата(Genadi Zawidowski @ Oct 20 2015, 00:26)  Карты на малые объёмы (2/4 GB) меньше страдают задержками. Интерфейс (4 бит или MMC/SPI) не влияет. Кстати, да. С этим эффектом я тоже столкнулся в своё время.
|
|
|
|
|
Oct 20 2015, 09:06
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Genadi Zawidowski @ Oct 20 2015, 00:26)  Групповая запись экономит время, но ещё лучше перед командой групповой записи выдать команду с информацией о размере планируемой записи. Цитату не приведу, у себя пока блочную запись не использую. При записи на карту потока 48 кГц-моно-16 бит заметные задержки (выражающиеся в росте количества буферов, ожидающих записи на карту) иногда происходят, как и у других участников, на время до секунды-полутора, при использовании 96 килобайт буферов потерь данных из-за пропусков практически не происходит (но бывает). Карты на малые объёмы (2/4 GB) меньше страдают задержками. Интерфейс (4 бит или MMC/SPI) не влияет. Все это конечно интересно, но чем докажете? По моему опыту никаких задержек нет. Максимум 160 мс. Но вот плохой выбор файловой системы вполне может увеличить их в два раза. В два раза ухудшает скорость работы с картами и форматирование карт на FAT16 и уменьшение AU до 512 байт.
|
|
|
|
|
Oct 20 2015, 10:06
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Цитата(AlexandrY @ Oct 20 2015, 12:06)  В два раза ухудшает скорость работы с картами и форматирование карт на FAT16 и уменьшение AU до 512 байт. А почему FAT16 должно ухудшать? Запись в последовательные сектора, блоками по 512, обновление FAT по окончании записи. Реализация записи своя, без библиотек, простая, как гвоздь. Просто карточки 4Гб и более должны быть FAT32, меньше FAT16. Чтобы были совместимы.
|
|
|
|
|
Oct 21 2015, 05:19
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(megajohn @ Oct 19 2015, 21:28)  The controller in Delkin’s Industrial SLC microSD cards implements an efficient bad block management algorithm to detect the factory-produced bad blocks and manage any bad blocks that appear with use. Тут совсем о другом пишут. Во-первых - про бэды с завода, во-вторых - даже именно только с завода, даже не говорится о полученных в процессе эксплуатации. Это называется дефект-лист. И к выравниванию износа вообще никакого отношения не имеет. Для выравнивания износа нужны счётчики использования блоков, а также нужен механизм динамической переадресации кластеров (чтобы каждая новая перезапись кластера могла происходить в новое свободное место). Цитата(Alex11 @ Oct 19 2015, 23:14)  Мы пишем на карточки разнообразные звук и видео в очень больших объемах. Эффекты наблюдаются при этом самые потрясающие. В том числе и задержки записи (карточка уходит в Busy) до 3 секунд. На девственно чистой карте этих задержек нет. Там есть максимум специфицированные 250 мс или около того. После того, как карта будет записана полностью, часть файлов стерта и записана снова, Опять 25.....  Уже сто раз тут обсудили, что нужно отделять мух от котлет, а задержки карты от задержек файловой системы. Цитата(Genadi Zawidowski @ Oct 20 2015, 03:26)  Групповая запись экономит время, но ещё лучше перед командой групповой записи выдать команду с информацией о размере планируемой записи. Цитату не приведу Цитату тоже не приведу, но насколько помню это требовали старые карты. MMC вроде.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|