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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

[uquote="jcxz",url="/forum/viewtopic.php?p=3702698#p3702698"][uquote="Oxford",url="/forum/viewtopic.php?p=3702688#p3702688"]С какими чипами 8051 он работает?[/uquote] https://www.segger.com/products/debug-p ... nd-devices[/uquote]
Из 8051 только EFM8 поддерживает. Смысл об этом говорить, я понимаю что ты хотел поумничать :tea: . STM8 тоже не поддерживает.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="jcxz",url="/forum/viewtopic.php?p=3702506#p3702506"]Воспользуйтесь хоть гуглом и поищите "CAN интерфейс" и "CAN протокол". Тогда может поймёте...[/uquote]
Интерфейс — это, например, 485 (который, кстати, по сути и взят за основу транспортного уровня CAN), 232 и т.п. — т.е. то, что обеспечивает транспортный уровень! Поверх интерфейса идет низкоуровневый транспортный протокол. Байты ж не сами по себе группами по 8 с идентификаторами и всякими флагами по шине путешествуют!
А уж поверх транспортного протокола можно наваять что-нибудь свое: скажем, поверх CAN впихнуть дебильный CANopen. Или поверх 485 впихнуть треклятый модбас!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Oxford",url="/forum/viewtopic.php?p=3702711#p3702711"]Из 8051 только EFM8 поддерживает. Смысл об этом говорить, я понимаю что ты хотел поумничать :tea: . STM8 тоже не поддерживает.[/uquote]Смысл в том, что J-Link поддерживает не только Cortex-M. А много чего, не только 8051.

Добавлено after 8 minutes 25 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702761#p3702761"]Интерфейс — это, например, 485[/uquote]Чё-то у вас какая-то каша в показаниях.. и там и там - "транспортный". Сами не запутались ещё? :)))
"Поверх интерфейса" - сами не ощущаете абсурдности фразы? Не "поверх", а "через" интерфейс. Нет там "выше" и "ниже". Вложенность и уровни есть внутри иерархии протоколов.
Всё очень просто и легко запомнить: Интерфейс - это аппаратный компонент, протокол - программный. Вот и всё.
Вот это и есть - устоявшаяся и общепринятая терминология. Повторите несколько раз чтобы запомнить. 8)
Можно конечно говорить о "протоколе обмена по шине CAN" при описании CAN-интерфейса (как части этого интерфейса!). Но для программы в МК CAN - это интерфейс. Т.е. - та дырка, через которую идёт общение. А "язык", на котором идёт общение - это протокол.
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

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

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

Сообщение Eddy_Em »

[uquote="jcxz",url="/forum/viewtopic.php?p=3702774#p3702774"]Интерфейс - это аппаратный компонент, протокол - программный. Вот и всё.[/uquote]
А вот и не всĒ!
Неправильно.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3702789#p3702789"]jcxz, у Вас какая-то странная семантика, сильно отличающаяся от общепринятой.[/uquote]Ну да, а ещё вспоминается чья-то семантика именования динамической памяти, также "сильно отличающаяся от общепринятой". :)))
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

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

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

Сообщение afz »

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

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

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

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

Сообщение Myp3ik »

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

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

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

Сообщение 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. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Сообщение Myp3ik »

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

Сообщение 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
Откуда: деревня в Тульской губернии

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

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

Сообщение Myp3ik »

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

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

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

Сообщение Myp3ik »

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

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

Сообщение Eddy_Em »

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

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Ответить

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