-
Постов
303 -
Зарегистрирован
-
Посещение
Весь контент Waso
-
Как сказать по IARски?
Waso ответил DogPawlowa тема в IAR
Нет. всеравно не хочет. дело в том что там в цикле еще есть условие и обнуление указателя буфера, со всякой обработкой, где много регистров используется. Поэтому и жадничает компилятор наверное. Но мог бы сохранить регистры в стек внутри этой обработки... -
Как сказать по IARски?
Waso ответил DogPawlowa тема в IAR
День добрый! Назрел такой вопрос: как ИАР-у(4.20) сказать чтобы перед циклом запомнил в регистр процессора адрес регистра выходных данных и потом не грузил его снова каждый раз. (Нужно ускорить процесс). Написал так: register uint16_t *pcSource; register uint32_t *pOut; pcSource = (uint16_t*)( xRxDescriptors[ ulNextRxBuffer ].addr & emacADDRESS_MASK); pin_off(clk_pin); // from AT91SAM7X256.h : //#define AT91C_PIOA_ODSR ((AT91_REG *) 0xFFFFF438) // (PIOA) Output Data Status Register pOut = (uint32_t*) AT91C_PIOA_ODSR; while( ulTotalFrameLength) { *pOut = *(pcSource++); pin_on(clk_pin); ulTotalFrameLength --; pin_off(clk_pin); } Но в результате компиляции упорно получается следующее: // 385 pOut = (uint32_t*) AT91C_PIOA_ODSR; LDR R3,??vEMACRead_and_Go_0+0x8 ;; 0xfffff430 CMP R5,#+0 BEQ ??vEMACRead_and_Go_4 // 396 *pOut = *(pcSource++); ??vEMACRead_and_Go_5: LDR R6,??vEMACRead_and_Go_0+0xC ;; 0xfffff438 LDRH R7,[R4, #+0] STR R7,[R6, #+0] ADDS R4,R4,#+2 // 399 pin_on(clk_pin); MOVS R6,#+128 LSLS R6,R6,#+10 ;; #+131072 STR R6,[R3, #+0] // 400 ulTotalFrameLength --; SUBS R5,R5,#+1 // 401 pin_off(clk_pin); STR R6,[R2, #+0] ... Тоесть при инициализации pOut в регистр пишется совсем другой адрес, который затем используется совсем в другом месте - макросом pin_on. Это макросы из ascold.h - знатокам знаком этот хедер. Оптимизация выставлена максимальная. При других уровнях оптимизации компилятор и вовсе игнорирует переменную pOut. Как это победить? -
ЗдОрово! Благодарю. ВОТ какраз нарыл похожего зверя в одном корпусе, но характеристики не ахти, и получается крупнее и дороже дискретных полевиков. Такчто спасибо за схемку - не придется изобретать велик. :)
-
О шотках - посмотрел на BAT54 и испугался. У них 0.8В падение при 100мА. Посоветуйте шотку с действительно малым падением.
-
Добрый день. Дубовый вопрос. Скажите пожалуйста, а у всех мосфетов встроен защитный диод? Мне нужно чтоб при закрывании через транзистор ток немог теч ни в одном направлении. Вобщем мне нужно собрать электронный переключатель, который бы переключал питание схемы с батареи на USB и обратно. Нужны минимальные падения напруги на этом переключателе - не более 0.3В при токе 100мА.
-
Altium для начинающего (2008 г)
Waso ответил Beginning тема в Altium Designer, DXP, Protel
Обновил УГО - подкорректировал графику. Делаю "Update schematic sheets" - обновляет УГО, но и забывает(обновляет) все параметры. Как этого избежать? Как обновить только графику или может както можно скопировать параметры? -
Altium для начинающего (2008 г)
Waso ответил Beginning тема в Altium Designer, DXP, Protel
Хм... у меня нет такой вкладки. Версия альтиума 6.5. Девятый в пути.. %) На схеме основной части - только вкладка с ее названием. На схеме канала - несколько вкладок с именами каналов. Я скопировал канал на основную схему - получилось как надо, но в PCB такую схему наверное уже не перегонишь. Только для распечатки... -
Altium для начинающего (2008 г)
Waso ответил Beginning тема в Altium Designer, DXP, Protel
С линиями печально. Но ничего.. Обрыскал форум, но так и не нашел ответ - как создать свой символ или элемент в библиотеке типа Power port. А то у земли палочка худенькая, и у питания стрелка не по ГОСТу... Пробовал сделать элемент типа Net tie(no bom) у которого один из пинов скрыт и подключен к GND, но это не то, потомучто цепь, подключенная к другому выводу не получает нужного имени. -
Altium для начинающего (2008 г)
Waso ответил Beginning тема в Altium Designer, DXP, Protel
Эм.. А можно еще вопрос? Можно тип линий свой задать? Ато мне вот надо по ГОСТу одинаковые каналы обвести штрих-пунктирной линией, а ее такой нет. Есть только отдельно штриховая и пунктирная.. :'( .. А я пока вкладку "Editor" поищщу... 0_о -
Altium для начинающего (2008 г)
Waso ответил Beginning тема в Altium Designer, DXP, Protel
Подскажите пожалуйста, можно какнибудь на схеме в случае многоканального устройства поз. обозначения отображать логические а не физические (с довеском имени канала). Такая возможность есть при рисовании платы, а на схеме я такого не нашел. -
О! Получилось. Благодарю. Этого достаточно. Хотя гибкости поменьше чем в пикаде в этом месте получается.
-
Хорошо, спасибо, поз.обозначения так тягаются. А вот меня не устраивает например расстояние от УГО микросхемы до текстового символа - номера ноги. Он почемуто далековато получается. Както не по ГОСТу... И шрифт этого элемента где задавать - тоже пока не нашел... Как быть?
-
А можно ли в Альтиуме на схеме перемещать части УГО (поз. обозначния, номера выводов и тп), как это делается в P-CAD-е с помощью шифта.
-
pull-up
Waso ответил kirdark тема в Работаем с ПЛИС, области применения, выбор
Ругается что мое семейство CoolRunner XPLA3 поддерживает пулап только для входных портов. А у меня двунаправленный с переходом в третье состояние. И вот надо чтоп в третьем состоянии включались пулапы. Это можно сделать? -
pull-up
Waso ответил kirdark тема в Работаем с ПЛИС, области применения, выбор
А вы в чем пишете? У меня ISE4.2 ругается на неизвестный символ "|" А пулапы ой как нужны... Девайс - xcr3064xl -
Отладка программ для AVR
Waso ответил ivainc1789 тема в AVR
О! Уже два варианта! Второй - в ветке OLEG_BOS: Спасибо! -
Отладка программ для AVR
Waso ответил ivainc1789 тема в AVR
Имеется STK500, пишу в IAR. Надо прошить. AVRstudio говорит что hex, сгенеренный IAR-ом имеет неверную контрольную сумму. Уже много разных хексов перепробовал - они одни и теже получаются и ошибка не уходит. Программа простейшая - ledchase, идущий с яром. Неужели все транслируют в студию через ubrof8 а не напрямую hex?? И еще непонятна ситуация с отладчиками для авр. Я вот по первости игрался с AlgorithmBuilder-ом и был шчасслефф. Он умеет контролировать регистры проца (аля Жытаг), дописывая свой отладочный код и используя всего одну ногу, одну из тех что и для прошивки. И вот пришла пора писать серьезные проекты - пересел на ИАР и незнаю как быть с отладкой, ибо настоящий JTAG держат не все AVR-ы... -
Рецепт работает, благодарю! Еще вопрос по CRC - хочу дописывать в конец файла число, которое давало бы нулевую CRC после прохода функции подсчета по файлу и этому числу вконце. Взял функцию crc16 из иаровских апнотов. Прогнал по прошивке. Результат сходится. В иаре менял настройку чтоб вставлял инверсионную сумму. И делал завершающий проход по этому числу. Результат ненулевой. Где я ошибся/как правильно??? Именно эту тонкость в гугле не нашол. :(
-
sam256 remap
Waso ответил SpiritDance тема в ARM
Однако подвисает симулятор при запуске. Но всеравно спасибо за участие! Я пока обошел эту проблему работая напрямую с железом. Позже разберусь с макросами и настрою симулятор. Буду использовать ваш файл как отправную точку. -
Ну, некоторые не настолько мелкие чтоб их делать inline. Хотя при наличии достаточного количества свободно места помешать может только жадность программиста. :) Благодарю за идею со структурами!
-
Хочется внутри одной большой функции создавать мелкие, которые бы видели переменные родительской функции как глобальные. Как я понимаю, при вызове функции с параметрами компилятор предварительно копирует эти параметры в отдельные переменные, которые вместе с переменными, обьявленными внутри той функции, образуют ее стек. Это долго и жирно. Хочется создать функцию, при вызове которой в стек заносился бы только адрес места вызова, а переменные брались бы из внешней функции. Как это сделать? Как я понимаю, при обращении через указатель, его значение также копируется в стек, такчто это не вариант.
-
А можно поподробнее о библиотечном аналоге Cstartup? Как его слинковать, откуда взять, какие функции он выполняет? Ато первый раз про такой слышу. :unsure: И еще. Резервировать 0x40 байт под вектора не много ли? Всего там 8 4-х байтных векторов, правильно? Это 0х20. В два раза больше места это на случай что все они будут грузить в PC абсолютный адрес? Или там есть чтото еще? Извиняюсь что так много вопросов.... :laughing: :smile3046:
-
sam256 remap
Waso ответил SpiritDance тема в ARM
Отладчик не зеркалит флеш в нулевые адреса при старте. Это и надо исправить. Отлаживаю пока в симуляторе. Оттого и удивляюсь насчет брейкпоинтов. Проц - AT91SAM7X256, ИДЕ IAR 440A -
sam256 remap
Waso ответил SpiritDance тема в ARM
У меня основная программа закачивает обновление через изернет, рестартует и затем бут его переписывает на место проги. В будущем бут должен будет уметь закачать прошивку через UART, но... незнаю, может и придется реализовать это сейчас, но времени в обрез. А пока хочу попробовать воспользоваться опцией линкера "Raw binary image"... Как все получится - отпишу. ============================================================== Шить еще не пробовал (заменил FlashAT91SAM7Sx.d79 на ваш), но отладчик упорно начинает работать с нулевого адреса даже если ROMSTART=00100000. Какнибудь можно его научить учитывать ремап/неремап при запуске? А вообще линкует хорошо. Дописывает указанный в rawbinary image файл куда надо. Кстати, как отладчика заставить вставлять больше брейкпоинтов? В некоторых программах при отладке у меня получалось ставить одновременно не больше 2-3х брейков. А взялся за бут - так он мне вообще фигу показывает и даже пошагам смотреть может только на ассемблеровский код. Чтото гдето забыл я настроить. Раньше пользовался шаблонами...