Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 24.10.2015, 17:27  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Как в STM8S208 использовать весь объем памяти 128к?

Вопрос к знатокам IAR, STVD и других компиляторов.
Понадобился STM8 с очень большим объемом памяти. Выбрал STM8s208CB, у которого 128 килобайт. По расчетам этого должно хватить. Там текстов сообщений порядка 100 килобайт. Чтобы в остальное втиснуть код программы, пишу на асме. Так вот, на IARе наткнулся на ограничение объема - больше 32 килобайт не хочет компилировать! Хотя по всему никаких ограничений не должно быть. IAR ломаный. Пробовал уже разные версии, и 6.0, и 6.4, и 6.5. У всех одно и то же, более 32к не компилится. Пробовал на STVD, там тоже ограничение объема, хотя и вдвое выше - на 64к.
Какие есть варианты решения этой проблемы? Хочется верить, что IAR все же должен позволять работать с любым объемом, но для этого возможно есть какая-то настройка параметров проекта.
Реклама:
Alex9797 вне форума  
Непрочитано 24.10.2015, 17:44  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,770 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

Почитайте, как вариант можно применить. Хотя, конечно, приятней действовать напрямую.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor на форуме  
Сказали "Спасибо" akegor
Alex9797 (24.10.2015)
Непрочитано 24.10.2015, 18:05  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

Сообщение от Alex9797 Посмотреть сообщение
Пробовал уже разные версии, и 6.0, и 6.4, и 6.5. У всех одно и то же, более 32к не компилится.
Хм! Прикольнее если получится!
Вы точно не путаете ИАР под АРМ с ИАРом под STM8? Или это был просто вброс?
Вот что кажет сам ИАР, официально:
Цитата:
Available Versions
Product: IAR Embedded Workbench for STMicroelectronics STM8
Version Release date LMS
2.10 Nov 18, 2014 LMS2
1.42 Jan 23, 2014 LMS2
1.41 Jul 4, 2013 LMS2
1.40 Mar 4, 2013 LMS2
1.31 Oct 4, 2012 LMS1
1.30 Apr 8, 2011 LMS1
1.20 Nov 10, 2010 LMS1
1.10 Apr 27, 2010 LMS1
"Юзера дурковали по чрному!" (с)
STM32F0 вне форума  
Непрочитано 24.10.2015, 18:45  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

Ну хотя бы поставить последний

IAR Embedded Workbench for STMicroelectronics STM8 2.10 Nov 18, 2014

для начала. А то первые версии у них были весьма чудесатые.
STM32F0 вне форума  
Непрочитано 24.10.2015, 19:13  
costco
Вид на жительство
 
Регистрация: 24.08.2015
Сообщений: 253
Сказал спасибо: 7
Сказали Спасибо 50 раз(а) в 36 сообщении(ях)
costco на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

Напиши мелкую порграммулину на компе, которая будет брать текстовик с твоими строками и на выходе отдавать ресурсный файл, у которого в начале будет массив указателей на эти строки. И рекомпил ресурсов можно поставить в pre-build, тогда эти строки можно в этом самом проекте и править.
costco вне форума  
Сказали "Спасибо" costco
Alex9797 (24.10.2015)
Непрочитано 24.10.2015, 19:22  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

costco, я так примерно сейчас и делаю. Конечно, это легче, чем если делать это чисто вручную, но все равно трудоемко. Вернее, трудоемкость выражается в затраченном времени. Много операций.
И в то же время не дает покоя мысль, что достаточно может что-то указать в настройках компилятора, может просто галочку поставить - и все заработает и так. Будет обидно, если в конце концов так и окажется.
Alex9797 вне форума  
Непрочитано 24.10.2015, 20:32  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

С АСМой лень было ковыряться, не моё. А вот в Си больше 60К заглотило.
Цитата:
IAR ELF Linker V2.10.4.157 for STM8
Copyright 2010-2015 IAR Systems AB.

501 bytes of readonly code memory
63 068 bytes of readonly data memory
272 bytes of readwrite data memory
Errors: none
Warnings: none
В свойствах проекта можно попробовать модели памяти установить на large.
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
Alex9797 (24.10.2015)
Непрочитано 24.10.2015, 22:22  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

Сообщение от STM32F0 Посмотреть сообщение
В свойствах проекта можно попробовать модели памяти установить на large.
Да, я пробовал и medium, и large, но не помогало. Но все равно, спасибо за дополнительный толчок в направлении настроек.
Дело в том, что я формирую проект на основе того встроенного шаблона, который использует IAR при создании нового проекта. А шаблон этот простейший, состоит всего лишь из нескольких строк. И там есть такая строка:

SECTION `.near_func.text`:CODE:NOROOT(0)

До тех пор, пока я использовал память в пределах 32 килобайт, все транслировалось без проблем. Поэтому и шаблон, и эта строка меня устраивала. А когда начались проблемы с ограничением памяти, я перепробовал много разных изменений. И в настройках выбирал medium и large, и пробовал открывать еще одну секцию - все безуспешно.
Проблема была еще в том, что не удалось найти в инете хорошего описания IAR. А то описание, что в хелпе, очень примитивное. Нет нормальных примеров по использованию директив. В данном случае меня интересовали подробности использования директивы SECTION.
А те примеры программ, которые в инете, тоже не помогли. Потому что в основном все примеры простые, не требующие много памяти, и в них моя проблема не возникает, потому и не решается.

Так вот, после совета "установить на large" я еще раз поискал места в программе и настройках, которые могут влиять на объем отведенной памяти. И попробовал изменить
SECTION `.near_func.text`:CODE:NOROOT(0)
на
SECTION `.far_func.text`:CODE:NOROOT(0)

Сработало! После этого дозволенный размер кода с 32к увеличился до 64к.
Попробовал после этого еще раз в настройках установить large, но все равно не действует.

В общем, это уже очень неплохой результат. Теперь надо искать нормальное описание директив, чтобы двигаться еще дальше. Но, похоже, что STM8 и так не очень балуют подробностями, а тем более ассемблер для него.
Alex9797 вне форума  
Непрочитано 24.10.2015, 22:30  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

Да, для лучшего понимания моей ситуации, выкладываю скелет моей программы:
.
Цитата:
MODULE asmmain
#include "iostm8s208cb.h"

PUBLIC __iar_program_start
PUBLIC main

EXTERN CSTACK$$Limit
SECTION `.far_func.text`:CODE:NOROOT(0)

__iar_program_start:
LDW X, #CSTACK$$Limit-1 ; Set stackpointer0x001700 ;
LDW SP, X

main:
ld A,#0
ld CLK_CKDIVR,A

Tab_soob
db $00, $00, $00, $00, $00
- - - - - - - - - - - - - - - - - -
здесь еще несколько тысяч подобных строк,
чтобы заполнить нужный объем памяти
- - - - - - - - - - - - - - - - - -
db $00, $00, $00, $00, $00


END
Саму программу я сюда пока не вписываю, только большой массив данных, для проверки ограничения памяти.


В общем, очень надеюсь на любую помощь, пусть даже это будет простая подсказка.
Или ссылка на хорошее описание IAR.

Последний раз редактировалось Alex9797; 24.10.2015 в 22:32.
Alex9797 вне форума  
Непрочитано 25.10.2015, 00:54  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Как в STM8S208 использовать весь объем памяти 128к?

В общем, проблема решилась.
Причем очень просто, и файл с ответом был под носом. Просто я даже не думал искать в нем. Его название "embOS_STM8_IAR.pdf".

Оказалось, что достаточно было заменить строку:
SECTION `.far_func.text`:CODE:NOROOT(0)
на
SECTION `.huge_func.text`:CODE:NOROOT(0)
и теперь можно использовать все 128к памяти.
Alex9797 вне форума  
Сказали "Спасибо" Alex9797
majorka65 (06.11.2015)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2012г - конец или начало? ve_de Отвлекитесь, эмбеддеры! 89 31.10.2008 16:05
[Решено] Так, рассказик :)) Я долго ржал :)) DK Отвлекитесь, эмбеддеры! 7 31.08.2007 22:33
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49
[Решено] Всем эмбеддерам посвящается... Decan Отвлекитесь, эмбеддеры! 0 24.10.2005 14:43


Часовой пояс GMT +4, время: 20:47.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot