AVR ADC & IAR2.28

Loading thread data ...

Всем привет!

Dima Orlov писал к All 29.01.2004:

DO> Заодно и еще один вопрос. Как сказать компилятору в IDE чтобы он код DO> вида puts("Hello, World!"); не компилировал как константную строку в DO> ПЗУ и указатель на нее в ОЗУ.

Чтобы именно этот код - никак. Поскольку функция puts работает со строкой из ОЗУ. Есть функция puts_P, которая работает со строкой из flash. Есть опция "--string_literals_in_flash" при включении которой все литералы будут размещаться во flash, а не в ОЗУ. Или, если эту опцию не включать, разместить строку во flash можно так: char __flash str[]="Hello, World!";

Reply to
Askold Volkov

Всем привет!

Dima Orlov писал к Askold Volkov 30.01.2004:

DO> Я пока что пользуюсь IDE, там эта опция не включается...

включается, как и любая другая. В параметрах компилятора в IDE есть поле "Additional compiler options", куда можно вписать все, что угодно.

Reply to
Askold Volkov
Reply to
Sergei Tuchinski

Всем привет!

Dima Orlov писал к Askold Volkov 30.01.2004:

DO> Меня насторожило то, что такая опция в принципе есть и DO> включается крыжиком, но при выборе меги 32 она становится неактивной.

нету там такого крыжика! А тот, который ты, видимо, имеешь в виду предназначен для другого - он размещает строковые литералы во внешнем ПЗУ данных, коего у меги 32 быть не может по причине отсутствия интерфейса внешней памяти.

DO> PS А по поводу загадочного поведения каналов АЦП идей нет?

да сильно много ты там понаписал - в лом разбираться. Но ни в компиляторе ни в АЦП (mega128) я никаких странностей не замечал.

Reply to
Askold Volkov

Привет, 30 января 2004 г., 13:51:46, ты писал(а):

DO>>> Я пока что пользуюсь IDE, там эта опция не включается... AV>> включается, как и любая другая. В параметрах компилятора в AV>> IDE есть поле AV>> "Additional compiler options", куда можно вписать все, что угодно. ST> в доке на 2.28 не нашел такого. компилер ругается на неправильный ST> синтаксис. или речь не о 2.28?

2.28А прекрасно понимает этот ключ

Всего хорошего.

Reply to
Alexey Krasnov
Reply to
Vladimir Vassilevsky
Reply to
Michael Bobrov
Reply to
Vladimir Vassilevsky

Привет, 31 января 2004 г., 8:32:59, ты писал(а):

AV> Точно ответить могут только авторы, я же могу только высказать свои AV> догадки. AV> Во-первых, это свежая опция, возможно ее просто не успели внести в IDE к AV> моменту его выпуска. Во-вторых IARовцы очень долго сопротивлялись ее AV> введению, считая идеологически неправильной, и сделали это только под AV> давлением пользователей. И действительно - включение этой опции AV> противоречит AV> стандарту языка.

Это еще каким местом противоречит ?

Всего хорошего.

Reply to
Alexey Krasnov

--

"Dima Orlov" сообщил в новостях следующее:

Я для каждого проекта создаю свой xcl файл, где явным образом все сегменты прописываю, и все из среды компилю - полет нормальный. Модель Small не использую, Tiny достаточно. Причем необходимость собственного xcl у меня вызывается тем, что я компилятор обманываю - слово __no_init использую для внутренней памяти (почему-то авторы его только для внешней задумали), а я не хочу static неявно инициализировать (вроде как стандарт С предусматривает неявную инициализацию нулем всех static переменных, во всяком случае IAR C так делает). А чтобы со строками во флеши оверхеда не было, их надо массивами объявлять: char __flash Tx_Text[]="Text";

А потом уже массив строк: char __flash * Family[3] { Tx_Text, Tx_Text2, Tx_Text3 };

А объявление типа char __flash * Family[3] { "Text", "Text2", "Text3" }; и чтобы без копирования в RAM мне тоже не удалось создать.

Примите уверения в совершеннейшем к Вам почтении

Reply to
Sergey Zabelin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.