STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: STM32 новичку в ARM что к чему

Сообщение ПростоНуб »

jcxz, не называйте "общепринятыми" собственные заморочки. Память распределяется или статически компилятором/компоновщиком или динамически во время выполнения программы. Третьего не дано. А уже способ динамического распределения памяти может быть произвольным.
Реклама
Аватара пользователя
afz
Опытный кот
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Re: STM32 новичку в ARM что к чему

Сообщение afz »

ПростоНуб писал(а):Интерфейс - это совокупность программно-аппаратных средств, служащих для взаимодействия программ или иных компонентов ИС друг с другом
Не-а! На самом деле интерфейс - это междумордие (дословно). :) А морды - они в обсуждаемой предметной области бывают разные. Могут быть аппаратными (тот же интерфейс RS-232), могут быть программными (тот же API), возможны комбинированные варианты...

То есть "Интерфейс" - это слишком широкое слово и, если из контекста не следует однозначно, о чем идет речь, то надо уточнять.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Реклама
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: STM32 новичку в ARM что к чему

Сообщение ПростоНуб »

afz, а что "Не-а"? Программа не программно-аппаратное средство? Или аппаратура не компонент ИС? )))
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

Программный интерфейс и аппаратный интерфейс - это разные вещи.
Иван Сусанин - первый полупроводник :solder:
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: STM32 новичку в ARM что к чему

Сообщение ПростоНуб »

Myp3ik, я бы не сказал. Если у нас есть интерфейс, обеспечивающий взаимодействие двух программ, вне зависимости от того, выполняются они на одном ядре или на разных компьютерах сети, то это программный интерфейс или аппаратный?
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

Вопрос по ld-скрипту. Нужно мне свободную память так распределить: в первых 2кБ хранятся настройки, а во всей остальной — логи.
Пишу:

Код: Выделить всё

  .myvars :
  {
    . = ALIGN(1024);
    KEEP(*(.myvars));
    . = . + 2K;
  } > rom

  .logs :
  {
    . = ALIGN(1024);
    KEEP(*(.logs))
  } > rom
Получаю в бинарнике: секция myvars лежит на смещении 0x3800, а секция logs — на смещении 0x4400 (а должна бы на 0x4000).
Но если я в описании myvars пишу

Код: Выделить всё

. = . + 1000;
то секция как раз 2кБ занимает!
Что это за чудеса в решете? Вообще не понимаю, как работают ld-скрипты!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Реклама
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

ПростоНуб, взаимодействовать они могут хоть через десяток программных и аппаратных интерфейсов.
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

А еще больше непонятного возникло при попытке объявить переменные:

Код: Выделить всё

  .myvars :
  {
    . = ALIGN(1024);
    __varsstart = ABSOLUTE(.);
    KEEP(*(.myvars));
    . = . + 1000;
    . = ALIGN(1024);
    __varsend = ABSOLUTE(.);
  } > rom
Прошил МК, смотрю: адрес секции = 8003800, а в остальных переменных бред какой-то: __varsstart=0x2CAB, а в __varsend=0xAABBCCDD — вообще какое-то дикое (может, отрицательное?) число!

Так, здесь я просто неправильно вывод делал: я написал

Код: Выделить всё

extern uint32_t _varslen, __varsstart, __varsend;
и выводил их содержимое. Но, глянув elf, увидел, что эти переменные лежат по нужным мне адресам, т.е. при выводе нужно было печатать не содержимое, а адрес переменной! (в том числе и длину, которая у меня определена как PROVIDE(_varslen = __varsend - __varsstart); ).

Теперь остается лишь разобраться, какого черта упомянутая конструкция имеет длину 2кБ, а не 1кБ, как следовало бы ожидать логически (ведь смещение +1000 все равно лежит в пределах 1кБ, и следующее выравнивание должно было лишь подвинуть к началу ближайшего килобайта).

UPD: дошло до меня! Я запихивал в эту секцию инициализатор структуры - 44 байта. Потом к этим 44 прибавлялись еще 1000 байт, и все выходило уже во вторую страницу! Вот и занимало суммарно 2кБ. Без инициализации все четко!
Последний раз редактировалось Eddy_Em Чт сен 19, 2019 10:59:46, всего редактировалось 2 раза.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: STM32 новичку в ARM что к чему

Сообщение ПростоНуб »

Myp3ik, что и требовалось доказать )
Разделяем протоколы по стеку, но не интерфейсы по программной или аппаратной реализации
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

ПростоНуб, ничего не требовалось доказывать. Разделяйте как хотите.
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: STM32 новичку в ARM что к чему

Сообщение ПростоНуб »

Myp3ik, Вы писали?
Myp3ik писал(а):Программный интерфейс и аппаратный интерфейс - это разные вещи.
И сами же потом сказали, что один конкретный интерфейс в моем примере реализуется через
Myp3ik писал(а):хоть через десяток программных и аппаратных интерфейсов
О чем еще спич?
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

Одно другому не мешает. Вот, так сказать, для общего развития https://www.youtube.com/watch?v=0GIcP6xvW5Q

Смотреть всем 8)
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

Теперь такой вопрос: может, кто-то успешно работал со светодиодными панелями P10 (вот такими)? Я пока даже не представляю себе, как к этому подойти! Может, SPI использовать для выдачи данных и одновременного тактирования?
А как решить проблему отсутствия мозга у китайца, который это придумал? Ведь вместо того, чтобы сделать нормальный параллельный интерфейс и за каждый такт сдвигать все изображение влево, у них какая-то дикая чересстрочная развертка (да еще и с двухбитным управлением!)... Т.е. для использования здесь DMA нужно будет из буфера экрана распихивать данные в четыре раздельных буфера! А потом уже запускать конечный автомат... Жуть какая!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18647
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

Eddy_Em писал(а):Т.е. для использования здесь DMA нужно будет из буфера экрана распихивать данные в четыре раздельных буфера! А потом уже запускать конечный автомат... Жуть какая!
ну, что из вас разработчик никудышний мы и по недельным мучениям с 1-wire в курсе. но что до такой степени все плохо - это новость. люди на attiny2313 этими модулями управляют, а вам без DMA никак?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

ARV, хватит уже бесполезные "советы" раздавать!
Абдуринщики пусть ногами дрыгают, а мне работать надо! Передавать по SPI три байта с паузами в 10мс можно и без DMA. Но вот если этих байт штук 30, а скорость передачи всего лишь 100кГц, то все, что МК сможет делать — это передавать данные!
Мужики знакомые пытались на абдурине ногодрыгом сделать. Получилось ужасно.

[offtop], кстати, а вы-то сами сколько убили на 1-wire, с нуля приступая к написанию кода? И как решили: на таймере с DMA или на UART с DMA?[/offtop]
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18647
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

Eddy_Em писал(а):И как решили: на таймере с DMA или на UART с DMA?
мне ни DMA не требуется, ни UART...
[offtop]Eddy_Em, а в ваших проектах лунный календарь есть?[/offtop]
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

ARV, опять флуд? Я все-таки жду чего-нибудь по теме, а не советов в стиле "ножками подрыгай, чо ты не как пацан?".
[offtop]Что такое "лунный календарь"? И при чем здесь астрофизика?[/offtop]
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: STM32 новичку в ARM что к чему

Сообщение ПростоНуб »

Eddy_Em, а погуглить?
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

Eddy_Em, https://www.youtube.com/watch?v=CxNbqvJVOtQ может чем поможет
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

Гуглил. Долго гуглил. Только подобное дерьмо — то на SPL, то на калокубе — и находилось...
Народ реально не хочет думать. А хочет решать проблемы не эффективным способом, а экстенсивным! По ссылке неудобная навигация по коду, поэтому я даже не нашел, где автор запрятал исходники!..
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Ответить

Вернуться в «ARM»