Распределение оперативной памяти в STM32

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Распределение оперативной памяти в STM32

Сообщение Z_h_e »

VladislavS писал(а):В любой среде программист должен держать под контролем распределение памяти.
Несомненно. Но сегмент памяти для стека лучше бы размещался в конце по умолчанию. Хуже от этого точно ничего не было бы, а некоторую вероятность ошибок снижает, а ошибок никто избежать не может.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Распределение оперативной памяти в STM32

Сообщение dosikus »

[uquote="Z_h_e",url="/forum/viewtopic.php?p=3442726#p3442726"]Но сегмент памяти для стека лучше бы размещался в конце по умолчанию.[/uquote]

Аргументы будут?
Реклама
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Распределение оперативной памяти в STM32

Сообщение Z_h_e »

Если ошибочно мало выделил места под стек, то стек может залезть на неиспользуемую область памяти и ничего страшного не произойдет. Т.е. от размещенного стека в конце памяти как минимум вреда нет, почему бы ему не быть там по умолчанию?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Распределение оперативной памяти в STM32

Сообщение VladislavS »

То есть, вы вполне допускаете переполнение стека в своих проектах? Неподражаемо!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Распределение оперативной памяти в STM32

Сообщение dosikus »

Z_h_e , Я так же как и VladislavS не понимаю ваших надумок. Вы что поток данных через стек перекидываете?
Реклама
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Распределение оперативной памяти в STM32

Сообщение Z_h_e »

У меня нет никаких надумок. Был бы стек в конце по умолчанию, для меня было бы лучше. Сделали скрипт по умолчанию стек "в середину", пускай так будет, все равно ничего не изменишь (я про дефолтный скрипт).

Добавлено after 6 minutes 25 seconds:
VladislavS писал(а):То есть, вы вполне допускаете переполнение стека в своих проектах? Неподражаемо!
Любая ошибка недопустима в программе, но их делают все. Язык ЯВУ как раз и придуман, чтобы облегчить жизнь программеру и минимизировать их.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Распределение оперативной памяти в STM32

Сообщение ARV »

имхо, распределение памяти между стеком и кучей должно склоняться в пользу кучи - программист должен задавать желаемый её размер (т.к. он хотя бы в общих чертах представляет, на что она пойдет), а все, что осталось - это стек (программист вряд ли в состоянии предсказать, насколько этот стек будет задействован, поэтому пусть его будет предельно много). для чего нужно контролировать оба этих параметра - лично мне не понятно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Распределение оперативной памяти в STM32

Сообщение Z_h_e »

Скорее всего в скрипте по умолчанию об этом не подумали или оставили на совесть программера.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
arkhnchul
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Re: Распределение оперативной памяти в STM32

Сообщение arkhnchul »

скорее просто не предполагали, что на контроллере с несколькими десятками килобайт памяти кто-то вообще в кучу полезет.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Распределение оперативной памяти в STM32

Сообщение ARV »

даже если и так, то почему по дефолту не ставить стек на конец всей доступной памяти? зачем принудительно уменьшать его объем?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Распределение оперативной памяти в STM32

Сообщение VladislavS »

Даже боюсь представить что вы скажете про системы с более чем одним стеком...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Распределение оперативной памяти в STM32

Сообщение ARV »

Вы не бойтесь, я не кусаюсь. Перечислите эти системы, мы и обсудим, насколько актуально это для текущей темы, оправдано ли перекладывание их размеров на голову программиста и т.п.... Если смысл есть - я соглашусь, если нет - останусь при своем мнении.
Последний раз редактировалось ARV Пт авг 24, 2018 14:55:57, всего редактировалось 1 раз.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Распределение оперативной памяти в STM32

Сообщение Z_h_e »

Я так уже влетал с дефолтным стеком. По незнанию конечно. Наивно решив что стек по умолчанию в конце и не подумав проверить это. Скомпиллил два проекта, загрузчик и основной код. При передачи кода указатель не исправил, ну и пошла магия. Что самое плохое, код почти всегда работал. Что хорошее - не случись это, так и думал бы поди что стек в конце. :)
Конечно можно сказать сам дурак, в приципе и не поспоришь. Ну тогда можно в ЯВУ отменить ворнинг, например когда ты вставил оператор присваивания в условный оператор, если что сам дурак.
VladislavS писал(а):что вы скажете про системы с более чем одним стеком...
При чем здесь это ? Дефолтные значения - по идее те значения, которые самые востребованные. Зачем заведо дефолтно ограничивать стек, когда у тебя за бортом осталось 95% оперативки?
Последний раз редактировалось Z_h_e Пт авг 24, 2018 15:06:03, всего редактировалось 1 раз.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Распределение оперативной памяти в STM32

Сообщение ARV »

Z_h_e писал(а):При чем здесь это ?
а как иначе сверкнуть интеллектом?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Распределение оперативной памяти в STM32

Сообщение VladislavS »

[uquote="ARV",url="/forum/viewtopic.php?p=3442852#p3442852"]Перечислите эти системы, мы и обсудим, насколько актуально это для текущей темы,[/uquote]Вот, например, инициализация стеков ядра ARM926.

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

        ;; Set up the interrupt stack pointer.

        BIC     r0, r0, #MODE_MSK       ; Clear the mode bits
        ORR     r0, r0, #IRQ_MODE       ; Set IRQ mode bits
        MSR     cpsr_c, r0              ; Change the mode
        LDR     r1, =SFE(IRQ_STACK)     ; End of IRQ_STACK
        BIC     sp,r1,#0x7              ; Make sure SP is 8 aligned

        ;; Set up the fast interrupt stack pointer.

        BIC     r0, r0, #MODE_MSK       ; Clear the mode bits
        ORR     r0, r0, #FIQ_MODE       ; Set FIR mode bits
        MSR     cpsr_c, r0              ; Change the mode
        LDR     r1, =SFE(FIQ_STACK)     ; End of FIQ_STACK
        BIC     sp,r1,#0x7              ; Make sure SP is 8 aligned

        ;; Set up the normal stack pointer.

        BIC     r0 ,r0, #MODE_MSK       ; Clear the mode bits
        ORR     r0 ,r0, #SYS_MODE       ; Set System mode bits
        MSR     cpsr_c, r0              ; Change the mode
        LDR     r1, =SFE(CSTACK)        ; End of CSTACK
        BIC     sp,r1,#0x7              ; Make sure SP is 8 aligned
Так что, сидели на AVR, и сидите себе дальше, чего вы к большим дядям то лезете?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Распределение оперативной памяти в STM32

Сообщение ARV »

VladislavS писал(а):Так что, сидели на AVR, и сидите себе дальше, чего вы к большим дядям то лезете?
я без сопливых дядь разберусь, на чем мне сидеть.
VladislavS писал(а):Вот, например, инициализация стеков ядра ARM926
перечислите мне, большой дядя, какие из STM32 имеют упомянутую вами архитектуру ARM9? или вы, как всегда, с высоты своего величия не опускаетесь до темы топика
Распределение оперативной памяти в STM32
?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Распределение оперативной памяти в STM32

Сообщение Мурик »

VladislavS писал(а):Вот, например, инициализация стеков ядра ARM926.
Думаю был бы более уместным пример с RTOS где свой стек на каждую задачу.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Распределение оперативной памяти в STM32

Сообщение VladislavS »

Я посчитал это настолько очевидным, что и упоминать не стоит.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Распределение оперативной памяти в STM32

Сообщение Z_h_e »

Мурик писал(а):Думаю был бы более уместным пример с RTOS где свой стек на каждую задачу.
Не думаю, ибо не про это разговор, надеюсь который не уйдет в срач на ровном месте.

VladislavS, представте себе такую картину. Пятница вечер, бильярд и пиво. Сидят вечером шахтеры после очередной Стахановской нормы и поигрывают в бильярд. Они могут себе позволить это только в пятницу. Большинство из них кий то не за тот конец держат, кто-то правила точно не знает, а кто-то играет и почти как спортсмен порфи. И тут нарисовался типок, профессиональный бильярдист, а пришел он сюда потому что на самом деле среди настоящих профи он лох, а может и не профи, просто у него есть время каждый день в пабах просиживать, вот и натер себе мозоль кием. И давай всех "учить", не так спинку прогнул, мел не того цвета, шары квадратные и в конце добавляет : "Не можете играть, играйте в песочек". Не знаю, как бы Вы поступили, но бОльшая часть народу будут его бить ногами и будут правы. И другой случай, зашел настоящий профи, увидел народ в лузу попасть не может, предложит помощь и научит без понтов лишних, я думаю пивка еще попьет на халяву и рыбку вяленую выдадут.

Напоминаю, это сайт РАДИОЛЮБИТЕЛЕЙ. Не нужны тут понты и их сразу видно. Тем более не по теме, как не маскируй.

---------------------------------------

Предлагаю вернуться в тему.
Еще раз. ИМХО. То что стек по умолчанию не в конце, это упущение. В любом ПО есть баги, какая бы серьезная фирма за кодом не стояла, хотя это не баг конечно. Почему это есть в разных IDE, потому что библиотеки одни и те же как правило. Если кто-то считает что это не так, то обоснуйте. Нормально и четко, и не типа, а вот если бы ты прогал проц со 128 ядрами... А если еще есть какой-то профит от того что огромный кусок памяти по умолчанию за бортом, то тем более обоснуйте. Может действительно есть от этого какая-то польза. Но пока никто ничего об этом не сказал. Было бы интересно послушать.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Распределение оперативной памяти в STM32

Сообщение VladislavS »

Если у тебя большой кусок памяти стоит без дела и ты хочешь отдать его под стек - отдай его под стек, кто тебе не даёт? Зачем писать много букв на форуме, если можно просто поправить скрипт линкера...
Ответить

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