Несомненно. Но сегмент памяти для стека лучше бы размещался в конце по умолчанию. Хуже от этого точно ничего не было бы, а некоторую вероятность ошибок снижает, а ошибок никто избежать не может.VladislavS писал(а):В любой среде программист должен держать под контролем распределение памяти.
Распределение оперативной памяти в STM32
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Распределение оперативной памяти в STM32
- Реклама
Re: Распределение оперативной памяти в STM32
[uquote="Z_h_e",url="/forum/viewtopic.php?p=3442726#p3442726"]Но сегмент памяти для стека лучше бы размещался в конце по умолчанию.[/uquote]
Аргументы будут?
Аргументы будут?
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Распределение оперативной памяти в STM32
Если ошибочно мало выделил места под стек, то стек может залезть на неиспользуемую область памяти и ничего страшного не произойдет. Т.е. от размещенного стека в конце памяти как минимум вреда нет, почему бы ему не быть там по умолчанию?
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Распределение оперативной памяти в STM32
То есть, вы вполне допускаете переполнение стека в своих проектах? Неподражаемо!
Re: Распределение оперативной памяти в STM32
Z_h_e , Я так же как и VladislavS не понимаю ваших надумок. Вы что поток данных через стек перекидываете?
- Реклама
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Распределение оперативной памяти в STM32
У меня нет никаких надумок. Был бы стек в конце по умолчанию, для меня было бы лучше. Сделали скрипт по умолчанию стек "в середину", пускай так будет, все равно ничего не изменишь (я про дефолтный скрипт).
Добавлено after 6 minutes 25 seconds:
Добавлено after 6 minutes 25 seconds:
Любая ошибка недопустима в программе, но их делают все. Язык ЯВУ как раз и придуман, чтобы облегчить жизнь программеру и минимизировать их.VladislavS писал(а):То есть, вы вполне допускаете переполнение стека в своих проектах? Неподражаемо!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Распределение оперативной памяти в STM32
имхо, распределение памяти между стеком и кучей должно склоняться в пользу кучи - программист должен задавать желаемый её размер (т.к. он хотя бы в общих чертах представляет, на что она пойдет), а все, что осталось - это стек (программист вряд ли в состоянии предсказать, насколько этот стек будет задействован, поэтому пусть его будет предельно много). для чего нужно контролировать оба этих параметра - лично мне не понятно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Распределение оперативной памяти в STM32
Скорее всего в скрипте по умолчанию об этом не подумали или оставили на совесть программера.
Re: Распределение оперативной памяти в STM32
скорее просто не предполагали, что на контроллере с несколькими десятками килобайт памяти кто-то вообще в кучу полезет.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Распределение оперативной памяти в STM32
даже если и так, то почему по дефолту не ставить стек на конец всей доступной памяти? зачем принудительно уменьшать его объем?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Распределение оперативной памяти в STM32
Даже боюсь представить что вы скажете про системы с более чем одним стеком...
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Распределение оперативной памяти в STM32
Вы не бойтесь, я не кусаюсь. Перечислите эти системы, мы и обсудим, насколько актуально это для текущей темы, оправдано ли перекладывание их размеров на голову программиста и т.п.... Если смысл есть - я соглашусь, если нет - останусь при своем мнении.
Последний раз редактировалось ARV Пт авг 24, 2018 14:55:57, всего редактировалось 1 раз.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Распределение оперативной памяти в STM32
Я так уже влетал с дефолтным стеком. По незнанию конечно. Наивно решив что стек по умолчанию в конце и не подумав проверить это. Скомпиллил два проекта, загрузчик и основной код. При передачи кода указатель не исправил, ну и пошла магия. Что самое плохое, код почти всегда работал. Что хорошее - не случись это, так и думал бы поди что стек в конце. 
Конечно можно сказать сам дурак, в приципе и не поспоришь. Ну тогда можно в ЯВУ отменить ворнинг, например когда ты вставил оператор присваивания в условный оператор, если что сам дурак.
Конечно можно сказать сам дурак, в приципе и не поспоришь. Ну тогда можно в ЯВУ отменить ворнинг, например когда ты вставил оператор присваивания в условный оператор, если что сам дурак.
При чем здесь это ? Дефолтные значения - по идее те значения, которые самые востребованные. Зачем заведо дефолтно ограничивать стек, когда у тебя за бортом осталось 95% оперативки?VladislavS писал(а):что вы скажете про системы с более чем одним стеком...
Последний раз редактировалось Z_h_e Пт авг 24, 2018 15:06:03, всего редактировалось 1 раз.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Распределение оперативной памяти в STM32
а как иначе сверкнуть интеллектом?Z_h_e писал(а):При чем здесь это ?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Распределение оперативной памяти в STM32
[uquote="ARV",url="/forum/viewtopic.php?p=3442852#p3442852"]Перечислите эти системы, мы и обсудим, насколько актуально это для текущей темы,[/uquote]Вот, например, инициализация стеков ядра ARM926.
Так что, сидели на AVR, и сидите себе дальше, чего вы к большим дядям то лезете?
Код: Выделить всё
;; 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
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Распределение оперативной памяти в STM32
я без сопливых дядь разберусь, на чем мне сидеть.VladislavS писал(а):Так что, сидели на AVR, и сидите себе дальше, чего вы к большим дядям то лезете?
перечислите мне, большой дядя, какие из STM32 имеют упомянутую вами архитектуру ARM9? или вы, как всегда, с высоты своего величия не опускаетесь до темы топикаVladislavS писал(а):Вот, например, инициализация стеков ядра ARM926
?Распределение оперативной памяти в STM32
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Распределение оперативной памяти в STM32
Думаю был бы более уместным пример с RTOS где свой стек на каждую задачу.VladislavS писал(а):Вот, например, инициализация стеков ядра ARM926.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Распределение оперативной памяти в STM32
Я посчитал это настолько очевидным, что и упоминать не стоит.
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Распределение оперативной памяти в STM32
Не думаю, ибо не про это разговор, надеюсь который не уйдет в срач на ровном месте.Мурик писал(а):Думаю был бы более уместным пример с RTOS где свой стек на каждую задачу.
VladislavS, представте себе такую картину. Пятница вечер, бильярд и пиво. Сидят вечером шахтеры после очередной Стахановской нормы и поигрывают в бильярд. Они могут себе позволить это только в пятницу. Большинство из них кий то не за тот конец держат, кто-то правила точно не знает, а кто-то играет и почти как спортсмен порфи. И тут нарисовался типок, профессиональный бильярдист, а пришел он сюда потому что на самом деле среди настоящих профи он лох, а может и не профи, просто у него есть время каждый день в пабах просиживать, вот и натер себе мозоль кием. И давай всех "учить", не так спинку прогнул, мел не того цвета, шары квадратные и в конце добавляет : "Не можете играть, играйте в песочек". Не знаю, как бы Вы поступили, но бОльшая часть народу будут его бить ногами и будут правы. И другой случай, зашел настоящий профи, увидел народ в лузу попасть не может, предложит помощь и научит без понтов лишних, я думаю пивка еще попьет на халяву и рыбку вяленую выдадут.
Напоминаю, это сайт РАДИОЛЮБИТЕЛЕЙ. Не нужны тут понты и их сразу видно. Тем более не по теме, как не маскируй.
---------------------------------------
Предлагаю вернуться в тему.
Еще раз. ИМХО. То что стек по умолчанию не в конце, это упущение. В любом ПО есть баги, какая бы серьезная фирма за кодом не стояла, хотя это не баг конечно. Почему это есть в разных IDE, потому что библиотеки одни и те же как правило. Если кто-то считает что это не так, то обоснуйте. Нормально и четко, и не типа, а вот если бы ты прогал проц со 128 ядрами... А если еще есть какой-то профит от того что огромный кусок памяти по умолчанию за бортом, то тем более обоснуйте. Может действительно есть от этого какая-то польза. Но пока никто ничего об этом не сказал. Было бы интересно послушать.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Распределение оперативной памяти в STM32
Если у тебя большой кусок памяти стоит без дела и ты хочешь отдать его под стек - отдай его под стек, кто тебе не даёт? Зачем писать много букв на форуме, если можно просто поправить скрипт линкера...



