Jump to content

    

Vitёk

Свой
  • Content Count

    269
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Vitёk

  • Rank
    Местный
  • Birthday 08/26/1972

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1242 profile views
  1. OMG... Я, канэшна, подозревал, что освоение новой САПР и перенос проектов не будет безболезненным. Но чтоб через такую ж..... :crying: PS: Спасибо за информацию. :)
  2. Спасибо, получилось. Успешно импортировал ячейки в central library. Только вот вопрос остался. Скачанные с сайта мегратека трансляторы OrCAD->PADS и PADS<->Expedition не очень дружат друг с другом - первый создаёт файлы типа *.??4, а второй требует файлы *.??07. Это в пределах нормы (и их просто нужно переименовать), или я что-то не так сделал?
  3. После работы в OrCAD осваиваю Expedition. Вопрос следующий: при помощи "PADS Layout translator" преобразовал *.LLB библиотеки (футпринты) в наборы файлов *.pt4, *.pd4, *.ld4 и *.ln4. Возможно ли импортировать их в Central library?
  4. Повторить ситуацию не удалось. Получается, что ввел всех в заблуждение, прошу меня извинить. В двух словах, почему?
  5. Компилятор у меня WinAVR (указано в комментарии к названию темы). Некоторые вещи он компилит совершенно безобразно, поэтому приходится делать на асме. Способ генерить поля может и есть, но чутьё подсказывает, что это маловероятно. Такое ощущение, что компиляторы для С и для АСМ сделаны независимо, и пересекаются слабо. В любом случае, спасибо. :) ЗЫ: попрошу модераторов перенести тему в раздел с соотв. компилятором.
  6. SasaVitebsk: Да, примерно так так в конце концов у меня и получилось. С той разницей, что я использовал не указатель, а напрямую адресовал конкретное поле в конкретном экземпляре структуры. И проблемы по большому счёту тоже нет, как Вы правильно заметили. Есть только один момент: при внесении изменений в структуру (а такое иногда бывает), приходится заново вычислять смещение для некоторых её полей (вручную), и менять соотв. дефайны. При создании темы у меня была надежда, что описание структуры (в .h-файле) можно скормить компилятору, что бы он сам проделывал эту работу. Сбыться ей, судя по всему, не судьба. У меня были проблемы с порядком размещения полей в структуре, от которых удалось избавиться при помощи #pragma pack. Может я чего не так делал, или настройки проекта неправильные, но победить удалось после её добавления. Вот сама структура: union TDate { unsigned char date[3]; struct { union { unsigned short mmdd; struct { unsigned char dd, mm; }; }; unsigned char yy; // }; }; Если есть желание, попробуйте, может у вас будет нормально без прагмы... Если да, дайте знать. :)
  7. Решил проблему, относительно красиво. 1. Поместил интересующие поля в самом начале структуры. 2. Окаймил описание структуры с помощью #pragma pack(push, 1) и #pragma pack(pop) (т.к. было неоднократно замечено, что поля в структуре могут физически располагаться не в том порядке, в каком они описаны): #pragma pack(push, 1) struct TStored { volatile unsigned short var_1; volatile unsigned short second_var; //...... все остальные поля } #pragma pack(pop) 3. И, наконец, досткп к ним сделал следующим образом: .extern strd; .equ var_1, (strd + 0) .equ second_var, (strd + 2) //....... lds r25, var_1 + 1 // High lds r24, var_1 // Low Работает нормально. :) Если кто найдёт недостатки данного решения, или знает, как сделать лучше - пожалуйста, не стесняйтесь, буду благодарен за советы.
  8. Вот что я пытался сделать: Собственно, нужно написать что-то вроде такого: lds r16, var Пока var не была полем структуры, всё работало хорошо. После этого я поместил её в структуру, как указано 1-м посту, и пытался сделать следующее: .extern strd.var_1 #define var strd.var_1 и .extern strd.var_1 .equ var, strd.var_1 Результаты были одинаковы: (.text+0x6): undefined reference to `strd.var_1' Правда, каюсь, описание структуры не включал в .s файл, сейчас попробую. ============= Попробовал. Ассемблерный компилятор не хочет понимать С-шные описания структур.
  9. В основном теле программы, написанной на С, используется экземпляр структуры, примерно так: // описание структуры struct TStored { .... volatile unsigned short var_1; .... }; // экземпляр struct TStored strd; // .... strd.var_1 = 0x1234; И есть процедура обработки прерывания, написанная на АСМе (файл типа *.s), откуда необходимо получить доступ к полю var_1 структуры strd. Я безуспешно пытался сделать это несколькими способами, насколько хватило фантазии. Сейчас пребываю в тупике. Подскажите, можно ли это сделать, и если да, то как?
  10. XCF01S Интересная мысль, можно и поставить что-нибудь 3-стабильное, но это в крайнем случае. И всё-таки: как оно будет себя вести при включении, описанном выше? Неужели никто не сталкивался?
  11. ПЗУ подключена к ПЛИС по схеме из даташита, ПЛИС грузится в режиме 'master serial'. Логика работы всего этого понятна, за исключением одного момента: если я буду использовать вывод ПЛИС "INIT_B" (он подключен к "OE/RESET" ПЗУ), не будет ли ПЗУ дёргать ножкой "DO" и тем самым мешать работе на линии "DI" ПЛИС? Если сформулировать вопрос по другому: то использовал кто нибудь _одновременно_ ножки ПЛИС "INIT_B" и "DIN" как пользовательские, в режиме "master serial", нет ли здесь подводных камней?
  12. rezident, спасибо за ссылку. Нашёл у них более подходящий и менее дорогой БП (ATX-68A). До идеала канэшна далеко, но всё ж результат.
  13. А кто выпускает, где продают? Или хотя бы набор ключевых слов для поиска приведите...