STM32 новичку в ARM что к чему
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
jcxz, не называйте "общепринятыми" собственные заморочки. Память распределяется или статически компилятором/компоновщиком или динамически во время выполнения программы. Третьего не дано. А уже способ динамического распределения памяти может быть произвольным.
- Реклама
- afz
- Опытный кот
- Сообщения: 744
- Зарегистрирован: Сб дек 22, 2012 08:17:42
- Откуда: Караганда, Казахстан
Re: STM32 новичку в ARM что к чему
Не-а! На самом деле интерфейс - это междумордие (дословно).ПростоНуб писал(а):Интерфейс - это совокупность программно-аппаратных средств, служащих для взаимодействия программ или иных компонентов ИС друг с другом
То есть "Интерфейс" - это слишком широкое слово и, если из контекста не следует однозначно, о чем идет речь, то надо уточнять.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
afz, а что "Не-а"? Программа не программно-аппаратное средство? Или аппаратура не компонент ИС? )))
Re: STM32 новичку в ARM что к чему
Программный интерфейс и аппаратный интерфейс - это разные вещи.
Иван Сусанин - первый полупроводник 
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Myp3ik, я бы не сказал. Если у нас есть интерфейс, обеспечивающий взаимодействие двух программ, вне зависимости от того, выполняются они на одном ядре или на разных компьютерах сети, то это программный интерфейс или аппаратный?
- Реклама
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Вопрос по ld-скрипту. Нужно мне свободную память так распределить: в первых 2кБ хранятся настройки, а во всей остальной — логи.
Пишу:
Получаю в бинарнике: секция myvars лежит на смещении 0x3800, а секция logs — на смещении 0x4400 (а должна бы на 0x4000).
Но если я в описании myvars пишу
то секция как раз 2кБ занимает!
Что это за чудеса в решете? Вообще не понимаю, как работают ld-скрипты!
Пишу:
Код: Выделить всё
.myvars :
{
. = ALIGN(1024);
KEEP(*(.myvars));
. = . + 2K;
} > rom
.logs :
{
. = ALIGN(1024);
KEEP(*(.logs))
} > rom
Но если я в описании myvars пишу
Код: Выделить всё
. = . + 1000;Что это за чудеса в решете? Вообще не понимаю, как работают ld-скрипты!
Re: STM32 новичку в ARM что к чему
ПростоНуб, взаимодействовать они могут хоть через десяток программных и аппаратных интерфейсов.
Иван Сусанин - первый полупроводник 
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
А еще больше непонятного возникло при попытке объявить переменные:
Прошил МК, смотрю: адрес секции = 8003800, а в остальных переменных бред какой-то: __varsstart=0x2CAB, а в __varsend=0xAABBCCDD — вообще какое-то дикое (может, отрицательное?) число!
Так, здесь я просто неправильно вывод делал: я написал
и выводил их содержимое. Но, глянув elf, увидел, что эти переменные лежат по нужным мне адресам, т.е. при выводе нужно было печатать не содержимое, а адрес переменной! (в том числе и длину, которая у меня определена как PROVIDE(_varslen = __varsend - __varsstart); ).
Теперь остается лишь разобраться, какого черта упомянутая конструкция имеет длину 2кБ, а не 1кБ, как следовало бы ожидать логически (ведь смещение +1000 все равно лежит в пределах 1кБ, и следующее выравнивание должно было лишь подвинуть к началу ближайшего килобайта).
UPD: дошло до меня! Я запихивал в эту секцию инициализатор структуры - 44 байта. Потом к этим 44 прибавлялись еще 1000 байт, и все выходило уже во вторую страницу! Вот и занимало суммарно 2кБ. Без инициализации все четко!
Код: Выделить всё
.myvars :
{
. = ALIGN(1024);
__varsstart = ABSOLUTE(.);
KEEP(*(.myvars));
. = . + 1000;
. = ALIGN(1024);
__varsend = ABSOLUTE(.);
} > rom
Так, здесь я просто неправильно вывод делал: я написал
Код: Выделить всё
extern uint32_t _varslen, __varsstart, __varsend;Теперь остается лишь разобраться, какого черта упомянутая конструкция имеет длину 2кБ, а не 1кБ, как следовало бы ожидать логически (ведь смещение +1000 все равно лежит в пределах 1кБ, и следующее выравнивание должно было лишь подвинуть к началу ближайшего килобайта).
UPD: дошло до меня! Я запихивал в эту секцию инициализатор структуры - 44 байта. Потом к этим 44 прибавлялись еще 1000 байт, и все выходило уже во вторую страницу! Вот и занимало суммарно 2кБ. Без инициализации все четко!
Последний раз редактировалось Eddy_Em Чт сен 19, 2019 10:59:46, всего редактировалось 2 раза.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Myp3ik, что и требовалось доказать )
Разделяем протоколы по стеку, но не интерфейсы по программной или аппаратной реализации
Разделяем протоколы по стеку, но не интерфейсы по программной или аппаратной реализации
Re: STM32 новичку в ARM что к чему
ПростоНуб, ничего не требовалось доказывать. Разделяйте как хотите.
Иван Сусанин - первый полупроводник 
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Myp3ik, Вы писали?
И сами же потом сказали, что один конкретный интерфейс в моем примере реализуется черезMyp3ik писал(а):Программный интерфейс и аппаратный интерфейс - это разные вещи.
О чем еще спич?Myp3ik писал(а):хоть через десяток программных и аппаратных интерфейсов
Re: STM32 новичку в ARM что к чему
Одно другому не мешает. Вот, так сказать, для общего развития https://www.youtube.com/watch?v=0GIcP6xvW5Q
Смотреть всем
Смотреть всем
Иван Сусанин - первый полупроводник 
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Теперь такой вопрос: может, кто-то успешно работал со светодиодными панелями P10 (вот такими)? Я пока даже не представляю себе, как к этому подойти! Может, SPI использовать для выдачи данных и одновременного тактирования?
А как решить проблему отсутствия мозга у китайца, который это придумал? Ведь вместо того, чтобы сделать нормальный параллельный интерфейс и за каждый такт сдвигать все изображение влево, у них какая-то дикая чересстрочная развертка (да еще и с двухбитным управлением!)... Т.е. для использования здесь DMA нужно будет из буфера экрана распихивать данные в четыре раздельных буфера! А потом уже запускать конечный автомат... Жуть какая!
А как решить проблему отсутствия мозга у китайца, который это придумал? Ведь вместо того, чтобы сделать нормальный параллельный интерфейс и за каждый такт сдвигать все изображение влево, у них какая-то дикая чересстрочная развертка (да еще и с двухбитным управлением!)... Т.е. для использования здесь DMA нужно будет из буфера экрана распихивать данные в четыре раздельных буфера! А потом уже запускать конечный автомат... Жуть какая!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18647
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
ну, что из вас разработчик никудышний мы и по недельным мучениям с 1-wire в курсе. но что до такой степени все плохо - это новость. люди на attiny2313 этими модулями управляют, а вам без DMA никак?!Eddy_Em писал(а):Т.е. для использования здесь DMA нужно будет из буфера экрана распихивать данные в четыре раздельных буфера! А потом уже запускать конечный автомат... Жуть какая!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
ARV, хватит уже бесполезные "советы" раздавать!
Абдуринщики пусть ногами дрыгают, а мне работать надо! Передавать по SPI три байта с паузами в 10мс можно и без DMA. Но вот если этих байт штук 30, а скорость передачи всего лишь 100кГц, то все, что МК сможет делать — это передавать данные!
Мужики знакомые пытались на абдурине ногодрыгом сделать. Получилось ужасно.
[offtop], кстати, а вы-то сами сколько убили на 1-wire, с нуля приступая к написанию кода? И как решили: на таймере с DMA или на UART с DMA?[/offtop]
Абдуринщики пусть ногами дрыгают, а мне работать надо! Передавать по SPI три байта с паузами в 10мс можно и без DMA. Но вот если этих байт штук 30, а скорость передачи всего лишь 100кГц, то все, что МК сможет делать — это передавать данные!
Мужики знакомые пытались на абдурине ногодрыгом сделать. Получилось ужасно.
[offtop], кстати, а вы-то сами сколько убили на 1-wire, с нуля приступая к написанию кода? И как решили: на таймере с DMA или на UART с DMA?[/offtop]
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18647
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
мне ни DMA не требуется, ни UART...Eddy_Em писал(а):И как решили: на таймере с DMA или на UART с DMA?
[offtop]Eddy_Em, а в ваших проектах лунный календарь есть?[/offtop]
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
ARV, опять флуд? Я все-таки жду чего-нибудь по теме, а не советов в стиле "ножками подрыгай, чо ты не как пацан?".
[offtop]Что такое "лунный календарь"? И при чем здесь астрофизика?[/offtop]
[offtop]Что такое "лунный календарь"? И при чем здесь астрофизика?[/offtop]
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Eddy_Em, а погуглить?
Re: STM32 новичку в ARM что к чему
Eddy_Em, https://www.youtube.com/watch?v=CxNbqvJVOtQ может чем поможет
Иван Сусанин - первый полупроводник 
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Гуглил. Долго гуглил. Только подобное дерьмо — то на SPL, то на калокубе — и находилось...
Народ реально не хочет думать. А хочет решать проблемы не эффективным способом, а экстенсивным! По ссылке неудобная навигация по коду, поэтому я даже не нашел, где автор запрятал исходники!..
Народ реально не хочет думать. А хочет решать проблемы не эффективным способом, а экстенсивным! По ссылке неудобная навигация по коду, поэтому я даже не нашел, где автор запрятал исходники!..


