Jump to content

    

alexey123_45

Участник
  • Content Count

    69
  • Joined

  • Last visited

Everything posted by alexey123_45


  1. проблемы с SDHC

    Здравствуйте Сделал драйвер для работы с SDHC картой на STM32F407. Раз в 3 секунды непрерывно записываю данные в файл, файловая система FAT32. Работаю через SPI. Некоторые карты перестают работать(а какие-то совершенно нормально работают) через несколько часов непрерывной записи. Посмотрел осциллографом, карта после операции записи в сектор не выходит из состояния busy. При этом возвращается статус о корректном завершении операции записи.В чем может быть проблема?
  2. проблемы с SDHC

    Понятно, спасибо.
  3. проблемы с SDHC

    А какая необходима минимальная пауза?
  4. проблемы с SDHC

    А как это можно победить?
  5. проблемы с SDHC

    Т.е. попробовать снизить частоту записи? Да,действительно, в спецификации ничего не сказано. Но есть еще один эффект, когда перебиваешь питание прибора, и соответственно, SDHC карты, то карта продолжает сбоить на этом же месте.Т.е. дальше запись не идет. Первое же чтение-запись и намертво залипает в busy
  6. Симулятор для STM32F031

    Здравствуйте Никто не сталкивался с симуляцией STM32F031 в Proteus(не удается запустить прерывания)? Есть ли какой-нибудь симулятор с поддержкой этого семейства?
  7. Здравствуйте Столкнудся с такой проблемой: Развели плату на базе OMAP L-138(схема платы во вложении). Настройл загрузочные пины на загрузку по UART2. подключил утилиту OMAP-L138_FlashAndBootUtils_2_40. Дал команду на стирание NAND sfh_OMAP-L138.exe -erase -targetType OMAPL138 -flashType NAND -p COM4 -v В консоли лог выполнения программы выглядит так ----------------------------------------------------- TI Serial Flasher Host Program for OMAP-L138 © 2017, Texas Instruments, Inc. Ver. 1.67 ----------------------------------------------------- [TYPE] Global erase [TARGET] OMAPL138 [DEVICE] NAND [NAND Block] 1 Attempting to connect to device /dev/ttyUSB0... Press any key to end this program at any time. (AIS Parse): Read magic word 0x41504954. (AIS Parse): Waiting for BOOTME... (power on or reset target now) (AIS Parse): BOOTME received! (AIS Parse): Performing Start-Word Sync... (AIS Parse): Performing Ping Opcode Sync... (AIS Parse): Processing command 0: 0x58535901. (AIS Parse): Performing Opcode Sync... (AIS Parse): Loading section... (AIS Parse): Loaded 14100-Byte section to address 0x80000000. (AIS Parse): Processing command 1: 0x58535901. (AIS Parse): Performing Opcode Sync... (AIS Parse): Loading section... (AIS Parse): Loaded 1352-Byte section to address 0x80003714. (AIS Parse): Processing command 2: 0x58535906. (AIS Parse): Performing Opcode Sync... (AIS Parse): Performing jump and close... (AIS Parse): AIS complete. Jump to address 0x80000000. (AIS Parse): Waiting for DONE... (AIS Parse): Boot completed successfully. Waiting for SFT on the OMAP-L138... Target: BOOTUBL Target: DONE И все далее программа не идет Взял плату другово производителя по схемотехнике такая же только NAND другой фирмы k9f4g08u0d. На ней все работает, программа корректно завершается Посмотрел осциллографом пины, которые подключены к NAND на этой плате, там все соответствует временной диаграмме. Посмотрел на нашей плате все порты стоят в +3.3В и ни на что не реагируют В чем может быть проблема?
  8. С питанием я разобрался. Но мне перепаяли процессоры - процессор с неработающей платы поставили на работающую, с работающей на неработающую. Получилась такая картина, процессор с неработающей платы заработал на нормальной плате, а процессор, который работал на новой плате, перестал работать. Но я на проблемной плате попробовал остальную периферию на другом банке питания(SPI1 банк питания А и UART2, через который идет загрузка подключен к этому же банку питания), она работает, а не работает EMIFA на банке питания B.
  9. Извините за глупый вопрос, а как вы это поняли? Просто это схема не моя. Не могли бы вы объяснить подробнее?
  10. программу я проверял на рабочей плате, там все хорошо работает и судя по отладчику все работает на нерабочей плате. По поводу GPIO не смотрел, но я проверю этот момент, но странно, почему утилита от TI для прошивки, которая работает везде и проблем не возникало(мы пользовались готовыми платами разных производителей и KIT-ами в том числе) не работает тут.
  11. Для reset NAND существует команда 0xFF. Т.е. выдаем команду 0xFF и ждем момента. когда R/B опустится в нуль на некий промежуток времени в качестве ответа. Для того чтобы выдать команду нужно подать на управляющие ноги сигналы, ну в часности опустить в нуль CS. Это делает процессор. вот я осциллографом этих управляющих воздействий не вижу
  12. Питание присутствует. Не может такого быть, что на конденсаторах оно есть, а до непосредственно ножек не дошло из-за паек, например? Отладчиком подключился, программа перестает работать на первом же обращении к NAND. И перестает она работать, потому что не может выдать команду reset на NAND. Но на на рабочей плате ровно эта же программа без проблем работает Совсем глупое предположение(хотя официальный диллер говорит, что ничего такого не слышал). Может ли быть так, что для другой ревизии чипа эта программа работает некорректно?
  13. Нет не запускал, но я сделал следующее: Я скачал исходники утилиты прошивочной. И в функции выдачи команды на NAND поставил бесконечный цикл и стал выдавать на все ножки 1-0 в бесконечном цикле. На рабочей плате ножки дергаются(вижу осциллографом), на нашей нет.Т.е. вообще ни один пин не дернулся. Похоже что порты стоят в 3-м состоянии. Но странно, утилита одна и та же, процессор явно грузится и программа там работает, т.к. консольный лог я вижу и он соответствует рабочей плате.Я ставлю свои контрольные сообщения, они тоже выводятся одинаково на обоих платах. Не может ли быть аппаратная проблема в самом процессоре?
  14. Да, ни один пин, подключенный к NAND.
  15. Прошивка OMAP L-138

    Да, там тоже +3В, но проблема в том, что я не вычитываю ID NAND, я для начала не могу записать команду reset. Этот софт сначала дает команду reset, а потом читает ID. Т.е. когда дается команда sfh_OMAP-L138.exe -erase -targetType OMAPL138 -flashType NAND -p COM4 -v, то если посмотреть саму утилиту там сначала дается NAND reset, а потом дается команда считать ID. Так вот сами команды с процессорных ног не идут.
  16. Прошивка OMAP L-138

    Здравствуйте Столкнудся с такой проблемой: Развели плату на базе OMAP L-138(схема платы во вложении). Настройл загрузочные пины на загрузку по UART2. подключил утилиту OMAP-L138_FlashAndBootUtils_2_40. Дал команду на стирание NAND sfh_OMAP-L138.exe -erase -targetType OMAPL138 -flashType NAND -p COM4 -v В консоли лог выполнения программы выглядит так ----------------------------------------------------- TI Serial Flasher Host Program for OMAP-L138 © 2017, Texas Instruments, Inc. Ver. 1.67 ----------------------------------------------------- [TYPE] Global erase [TARGET] OMAPL138 [DEVICE] NAND [NAND Block] 1 Attempting to connect to device /dev/ttyUSB0... Press any key to end this program at any time. (AIS Parse): Read magic word 0x41504954. (AIS Parse): Waiting for BOOTME... (power on or reset target now) (AIS Parse): BOOTME received! (AIS Parse): Performing Start-Word Sync... (AIS Parse): Performing Ping Opcode Sync... (AIS Parse): Processing command 0: 0x58535901. (AIS Parse): Performing Opcode Sync... (AIS Parse): Loading section... (AIS Parse): Loaded 14100-Byte section to address 0x80000000. (AIS Parse): Processing command 1: 0x58535901. (AIS Parse): Performing Opcode Sync... (AIS Parse): Loading section... (AIS Parse): Loaded 1352-Byte section to address 0x80003714. (AIS Parse): Processing command 2: 0x58535906. (AIS Parse): Performing Opcode Sync... (AIS Parse): Performing jump and close... (AIS Parse): AIS complete. Jump to address 0x80000000. (AIS Parse): Waiting for DONE... (AIS Parse): Boot completed successfully. Waiting for SFT on the OMAP-L138... Target: BOOTUBL Target: DONE И все далее программа не идет Взял плату другово производителя по схемотехнике такая же только NAND другой фирмы k9f4g08u0d. На ней все работает, программа корректно завершается Посмотрел осциллографом пины, которые подключены к NAND на этой плате, там все соответствует временной диаграмме. Посмотрел на нашей плате все порты стоят в +3.3В и ни на что не реагируют В чем может быть проблема?
  17. Bluetooth

    Здравствуйте, нужна помощь Я знаю, что есть bluetooth модули в которые можно заливать свои приложения.Не мог бы кто-нибудь посказать какой модуль лучше взять и какие аппаратно-программные инструменты еще нужны?
  18. Вопрос по записи файла на OMAP L-138

    Все разобрался: необходимо еще было переопределить параметр mem в bootargs
  19. Здравствуйте Столкнулся с такой проблемой: В ARM ядре из-под Linux пишу текстовый файл CSV формата на внешнюю SDHC карту, отформатированной в FAT32. Как только размер файла на диске становится примерно 39МБайт программа аварийно завершается и в файле вместо последних нескольких записей мусор. Проверял, на утечки памяти, не обнаружил, не может ли это быть связано с каким-то кэшированием? Запись в файл идет на фоне обмена с DSP ядром через DSPLINK Файл открываю так resultFile = open(name, O_RDWR | O_CREAT | O_APPEND, 0640); Записываю test_a = write(resultFile, rec_buf, strlen(rec_buf)); Не сталкивался кто-нибудь с такой ситуацией?
  20. Вопрос по записи файла на OMAP L-138

    Я поправил адреса, но меня это не спасло. Я запустил пример из состава SDK, c ним такая же картина. Выдается такое BUG: Bad page state in process file_write pfn:c3f02 page:c04e4040 count:0 mapcount:0 mapping: (null) index:0x0 page flags: 0x200(arch_) Backtrace:[<c0035730>] (dump_backtrace+0x0/0x114) from [<c0336dd0>] (dump_stack+0x18/0x1c) r7:00000007 r6:c70ac000 r5:c04e4040 r4:c0458384 [<c0336db8>] (dump_stack+0x0/0x1c) from [<c0084e68>] (bad_page+0xd0/0xfc) [<c0084d98>] (bad_page+0x0/0xfc) from [<c0086564>] (get_page_from_freelist+0x390/0x4c4) r5:c04e4040 r4:c04e4040 [<c00861d4>] (get_page_from_freelist+0x0/0x4c4) from [<c008678c>] (__alloc_pages_nodemask+0xf4/0x51c) [<c0086698>] (__alloc_pages_nodemask+0x0/0x51c) from [<c0080d00>] (find_or_create_page+0x40/0x88) [<c0080cc0>] (find_or_create_page+0x0/0x88) from [<c00d7f10>] (__getblk+0x150/0x2e4) [<c00d7dc0>] (__getblk+0x0/0x2e4) from [<c012a5bc>] (fat_mirror_bhs+0x70/0x118) [<c012a54c>] (fat_mirror_bhs+0x0/0x118) from [<c012aca4>] (fat_alloc_clusters+0x314/0x370) [<c012a990>] (fat_alloc_clusters+0x0/0x370) from [<c012db30>] (fat_get_block+0x138/0x278) [<c012d9f8>] (fat_get_block+0x0/0x278) from [<c00d9578>] (__block_write_begin+0x1c4/0x4d4) [<c00d93b4>] (__block_write_begin+0x0/0x4d4) from [<c00d9a28>] (block_write_begin+0x50/0x80) [<c00d99d8>] (block_write_begin+0x0/0x80) from [<c00d9da0>] (cont_write_begin+0x348/0x394) r6:02849000 r5:c70ac000 r4:00000000 [<c00d9a58>] (cont_write_begin+0x0/0x394) from [<c012dde4>] (fat_write_begin+0x5c/0x84) [<c012dd88>] (fat_write_begin+0x0/0x84) from [<c007f5ac>] (generic_file_buffered_write+0xe8/0x230) r7:00000000 r6:02849000 r5:000008ca r4:000008ca
  21. Вопрос по записи файла на OMAP L-138

    Извиняюсь, невнимательно посчитал адреса, действительно в конфинурации DSPLINK зарезервирован диапазон адресов 0xC3E00000-0xC4000000, а в DSP 0xC3E00000-0xC4001000, видимо в этом причина
  22. Вопрос по записи файла на OMAP L-138

    ЦитатаНадо сопоставить, что передается ядру в mem=, и что прописано в конфигурации DSP/BIOS. Посмотрел - длины и начальные адреса совпадают
  23. Вопрос по записи файла на OMAP L-138

    Посмотрю, но все-таки по поводу расхода памяти. Просто мне надо писать несколько суток непрерывно, и крутится еще несколько программ, вот до какого момента будет кэшироваться?
  24. Вопрос по записи файла на OMAP L-138

    Конфигурацию памяти я взял из документации, собственно там сказано, что linux эти адреса не использует. И в примерах SDK конфигурируется именно это адресное пространство. А если как-то принудительно очищать кэш или ограничить его размер? Просто судя по статистике расхода памяти память в примере, описанном выше расходуется с 108 МБ до 21МБ.