Jump to content

    

Fox_Sanchez

Свой
  • Content Count

    202
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Fox_Sanchez

  • Rank
    Местный
  • Birthday 12/29/1986

Старые поля

  • Vkontakte
    Array

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

2423 profile views
  1. Чтоб оптимизатор не выкинул. Я по-началу его создал только чтоб посмотреть куда он попадет, сам массив нигде в программе не использовался. В общем случае конечно volatile не нужно делать.
  2. Может кому-то будет полезно. В файле *.ld в MEMORY добавляем строчку XRAM1 /* Memories definition */ MEMORY { CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 192K XRAM1 (xrw) : ORIGIN = 0xD0000000, LENGTH = 16384K FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K } И в SECTIONS добавляем описание секции. (NOLOAD) указывает, что в момент старта эта память не проинициализирована и загружать в нее ничего нельзя. Все переменные там буду не проинициализированы. /* External RAM section */ .xram1 (NOLOAD): { *(.xram1*); } >XRAM1 Дальше в программе объявляем переменные вот так: __attribute__((section(".xram1")))volatile uint8_t array[16000000]; и они попадают во внешнюю память.
  3. Есть проект на STM32F429 с микросхемой внешней SDRAM-памяти. Все настроил и сконфигурировал, память по указателям читается-пишется нормально. Дальше хочу чтобы она распределялась линкером. Добавил секцию в .ld файл, отправил в нее здоровенный массив - работает. Но эта скотобаза КубИДЕ в упор не хочет мне показывать сколько там памяти занято. Build Alalyzer эту мою секцию не отображает. GCC на выходе говорит вот это: text data bss dec hex filename 105704 20 16001948 16107672 f5c898 qwe.elf Тобишь все в одну кучу посчитано. Но ведь оно работает, значит попало куда надо. Но что-то тут не так. Что и где я забыл прописать? Раньше подобное делал в keil и там все было ясно-понятно. *** Отбой, перезагрузил комп - все отобразилось в Build Analyzer как надо. Глюк какой-то был.
  4. Пасибо, заценю на досуге, надо только плату подходящую найти. А отдельно-стоящий стлинк можно каким-нить простым способом перешить? И кстати какие еще профиты дает эта перешивка? Не, идея именно чтоб не ставить. Когда код с гита обновляется - все нафиг слетает. Я эту тему не один пилю.
  5. Тормозит в смысле останавливается. Даже если не в дебаге, а когда просто прошит. А про while(1) в вашем случае компилятор скорее всего просто выкинул все что за ним находится. Если оно будет не просто в коде, а под условием - выпрыгивает без проблем. Чтобы не понять неправильно - во время остановки ставлю курсор на желаемую строку и жму меню Run->Move to line. Так можно принудительно запускать выполнение нужных частей кода или обходить какие-нить условия. Но пользоваться надо осторожно, можно перепрыгнуть инициализацию переменной или еще что-нить важное и потом долго думать как так получилось.
  6. Пасибо, проверил - работает! Это ж можно условные брякпоинты делать и ассерты нормально оформлять без вывода! Но есть нюанс - проц на этой штуке тормозит даже без отладчика. Так что не везде она применима. Как вариант - делать условную компиляцию для отладки. А про while - я обычно делаю Run->Move to line за ним и норм все выходит. Далее следующий вопрос - как из кода обнаружить наличие отладчика?
  7. Добрый день! Есть STM32F4, ST-Link и CubeIDE. Подскажите, возможно ли со стороны контроллера остановить выполнение под отладчиком? Например какая-нить затычка обработчика ошибок. Сейчас там while(1) и пока не ткнешь на паузу в ИДЕ - не понятно чего происходит. А хочется этот while заменить на команду остановки, чтоб ИДЕ показало что мы тут зависли. Тратить на это брякпоинт не хочется, их и так мало. Да и слетают они после редактирования кода.
  8. 200 метров это 20 атмосфер, давление не малое. Компаунд передаст давление внутрь, на плату. При том не факт что раномерно, даже если залить его под вакуумом и не допустить пузырей воздуха. Тот-же виксинт под дпалением сжимается весьма неплохо. А от сжатия могут треснуть керамические компоненты. В общем стремная затея. Проще герметичный корпус заполнить несжимаемой непроводящей жидкостью и установить сильфон для выравнивания давления.
  9. Добрый день! Кто-нибудь встречал в продаже такую вот штуковину? На материнках радиатор моста на таких висит. Я сам их выпаивал, в макетах всяких применял. Под крокодил осциллографа очень удобно подходит. А тут в одном проекте напрашивается такая штука, а где купить не знаю.
  10. Скорее всего это вызвано тем, что в Альтиуме принято соединять цепи разных листов через "port". Если их связать через подпись провода (net label) оно будет работать, но выдает такое предупреждение. Вообще связность этих надписей зависит от настроек и может быть ограничена одним листом.
  11. Я при переходе на Altium портировал свою библиотеку из Eagle. Начал делать в Excel как самый простой вариант, но экселю очень быстро стало плохо, так что его вообще не рассматриваем. А про "удобство" поиска нужного листа в этой куче вообще молчу.
  12. Чертеж в данном случае простой, его почти и не видно за полигонами. И в этом как раз проблема - пару раз уже забывал выключить слой и позже обнаруживал, что куски чертежа разъехались вместе с компонентами. Обратно его было уже не восстановить и приходилось заново импортировать.
  13. Щас оно так и сделано) Просто думал вдруг есть быстрый способ морозить слой в один клик... В автокаде постоянно им пользовался, привык)
  14. Это наоборот его принудительно отобразит в режиме одного слоя. Но выделить и случайно запороть его примитивы остается. У меня там в тонких линиях кусок механического чертежа. Очень ломает каждый раз его включать-выключать. Хочу чтоб всегда висел, но не редактировался. Спасибо, попробую их освоить. Но это все равно немного не то. Хочется мышью шерудить дорожки, компоненты и все остальное, но не затрагивать чертеж под ними.