17.01.2013, 19:14
|
|
Прописка
Регистрация: 10.08.2010
Сообщений: 113
Сказал спасибо: 30
Сказали Спасибо 43 раз(а) в 26 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от wellcom
|
Есть ли более простые варианты конфигурирования портов
|
можно использовать макросы (пример тут: http://ziblog.ru/2012/09/09/linii-vv...2-chast-3.html)
а еще можно напрямую работать с регистрами GPIO...
|
|
|
|
17.01.2013, 19:15
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от wellcom
|
Если взять чип с небольшой флеш, то % 20 флеша уйдет только на инициализацию.
|
Нонсенс. Если вас не устаревает библиотека - то можете сами ручками проделать все то-же самое! Выиграете пару байтиков (и то сомнительно)
|
|
|
|
17.01.2013, 19:17
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
хотя да, избавитесь от структур инициализации, как и от портироваемости и гибкости кода.
|
|
|
|
17.01.2013, 19:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от wellcom
|
8 раз заполнять ст-ру и 8 раз инициализировать ... % 20 флеша уйдет только на инициализацию.
|
А 4 раза и 10% - намного лучше? Используйте запись в порты и это будет самый компактный вариант:
__________________
There's always more than one way to skin a cat.
|
|
|
|
17.01.2013, 19:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от nerozero
|
Выиграете пару байтиков (и то сомнительно)
|
Выигрыш, повидимому, составит 32 байта на порт, плюс экономия кода. Это минимум; если там еще и аналоговые входы есть, то выигрых возрастет соответственно, как я понимаю.
__________________
There's always more than one way to skin a cat.
|
|
|
|
17.01.2013, 19:32
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от tempora
|
Выигрыш, повидимому, составит 32 байта на порт, плюс экономия кода. Это минимум; если там еще и аналоговые входы есть, то выигрых возрастет соответственно, как я понимаю.
|
это если вы структуру объявляете в внутри функции. Кто вам мешает объявить ее единажды глобально и просто менять ее поля??? тоесть одна структура инициализации GPIO на все. И это все без включенной оптимизации кода под размер! Вас сильно удивят выкрутасы которые проделывает компилятор во время оптимизации...
|
|
|
|
17.01.2013, 19:40
|
|
Временная регистрация
Регистрация: 25.09.2008
Сообщений: 95
Сказал спасибо: 39
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
читал эту статью, буду курить регистры, так как мой камень STM32F103 имеет всего лишь 16 кБ флеша. Инициализация 2-х портов (как по ссылке выше) заняла 1544 байт....многовато
|
|
|
|
17.01.2013, 19:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от nerozero
|
это если вы структуру объявляете в внутри функции. Кто вам мешает объявить ее единажды глобально и просто менять ее поля???
|
И что, 32 бита, записываемые в " поля" из константы в коде, занимают меньше места, чем 32 бита, хранимые в структуре?
__________________
There's always more than one way to skin a cat.
|
|
|
|
17.01.2013, 19:44
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
wellcom, Так это-ж не только инициализация, туда-же еще и код библиотеки входит.
|
|
|
|
17.01.2013, 19:54
|
|
Вид на жительство
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от tempora
|
И что, 32 бита, записываемые в "поля" из константы в коде, занимают меньше места, чем 32 бита, хранимые в структуре?
|
Дались вам эти 32 байта пусть даже с 16КБайтами флеша
При глобальной переменной вы избавляетесь от повторного описания каждый раз тех самых 32 байт. Другими словами - 32 байта на инициализацию + резмер структуры 1 раз вместо 5 раз скажем в 5 функциях.
Reductio ad absurdum - берите процессор с адекватной задаче памятью тем более по моему даже в цене разница совсем мизерная...
wellcom, вы попробуйте включить библиотеку stdlibc и использовать printf(). Вот это МОНСТР пожирающий память.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:25.
|
|