Перейти к содержанию
    

Пришелец

Участник
  • Постов

    186
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Пришелец


  1. там где объявляется переменная никаих команд нет.

     

     \                                 In segment CODE, align 2, keep-with-next
       1276          void menu_firstOBR(void)
       \                     menu_firstOBR:
       1277          {
       1278          static char cnt_123=1;
       1279          key();
       \   00000000   ........           CALL    key
       1280          menu_ptr=&menu_first;
       \   00000004   ....               LDI     R16, LOW(menu_first)
    
    
    в сегментах NEAR_I и NEAR_ID место под переменные выделяется и инициализатор прописывается:
    
       \                                 In segment NEAR_I, align 1, keep-with-next, root
       \   00000000                      REQUIRE `?<Segment init: NEAR_I>`
       \                     ??cnt_123:
       \   00000000                      DS 1
       \   00000001                      REQUIRE `?<Initializer for cnt_123>`
       1283          
    
    
    
       \                                 In segment NEAR_ID, align 1, keep-with-next, root
       \                     `?<Initializer for cnt_123>`:
       \   00000000   01                 DB 1
    
       \                                 In segment NEAR_ID, align 1, keep-with-next, root
       \                     `?<Initializer for a>`:
       \   00000000   01                 DB 1
    
       \                                 In segment NEAR_ID, align 1, keep-with-next, root
       \                     `?<Initializer for a>_1`:
       \   00000000   01                 DB 1

     

    !!! только смещение адреса почему-то не изменяется в NEAR_ID или я чего-то не понимаю?

  2. с программатором всё нормально.

     

    да все типы ведут себя так же.

     

    В настройках С перепробовал (там три галочки есть) по всякому - не помогает

     

    насчёт - спасибо - учту :)

     

    скажите у Вас нет такой проблемы с той же версией иара?

    статики и глобальные нормально инициализируются?

  3. ff наблюдаю при отладке когда вывожу значение переменной.

     

    от текста программы проблема не зависит.

     

    char b=10;

     

    void func(void)

    {

    static char a=10;

    char c=10;

     

    print_dec(a);

    print_dec(B);

    print_dec©;

     

    }

     

    a и b всегда ff

    c=10

     

    хотя однозначно в файле кода для прошивки есть инициализаторы для них.

     

    _______________

    мне кажется что проблема где-то в настройках сегментов

     

    неужели у всех нет этого глюка???

  4. Не инициализируются статические и глобальные переменные. (mega128 IAR 4.10b)

     

    хотя сами переменные создаются и их инициализаторы так же создаются во FLASH.

     

    нулями переменные инициализируются. если инициализировать другим числом то всегда FF.

     

     

     

    Помогите пожалуйста кто знает в чём дело. :)

    :maniac: Геморой - вручную инициализировать глобальные переменные и не пользоваться static

  5. Вот объявление класса:

     

    class i2c_p

    {

    public:

    unsigned short adr;

    void operator = (unsigned short a);

    i2c_p operator + (unsigned short a);

    i2c operator [] (unsigned short i);

    operator char();

    i2c operator * ();

    i2c_p(unsigned short a);

    };

     

    использую его так:

     

    i2c_p p(10),q(20);

    p=q; //так компилирует

    p=q+1 //а так пишет ошибку

    :huh:

    Error[Pe350]: more than one operator "+" matches these operands:

    built-in operator "arithmetic + arithmetic"

    function "i2c_p::operator+(unsigned short)"

    operand types are: i2c_p __near + int

  6. Для класса перегрузил оператор + всё ок затем добавил перегрузку привидения типа к char и он стал писать такую ошибку:

     

    Error[Pe350]: more than one operator "+" matches these operands:

    built-in operator "arithmetic + arithmetic"

    function "i2c_p::operator+(unsigned short)"

    operand types are: i2c_p __near + int

     

     

    Может кто в курсе в чём проблема? :blink:

  7. lwIP без оси работает вполне, я пользую в NIOS II читсый lwIP без UCOS.

    Но понятно что разруливать моменты вызова разных функций lwIP приходиться ручками, без  всяких потоков.

     

    А GNU - это механизм обмена информацией, более менее унифицированный.

    Собрать под ним может любой, если руки на месте, и протестить (обратная связь с багами глубже в силу доступности). А людей имеющих IAR надой найти.

    Да и кто вам мешает прикрутить GNU к IDE?

    IAR то работает тоже через командные строки, но просто они сделали интерфейс который это скрывает.

    Так что если есть желание, то в путь, но скорее всего это уже сделано, надо только поискать :)

     

     

    Снова возвращаюсь к теме.

    Прикрутить можно наверное но мне было бы понятно если бы компилятор запускался из под Windows. Но чтобы его использовать под Windows нужно запускать эмулятор unix - cigwin.

     

    Можно ли прикрутить GNU :maniac: к IDE если GNU под unix а IDE под Windows?

  8. т.е. с uCOS

     

    можно работать в IARE если под него подправить синтаксис?

     

    тогда почему все пользуются GNU ведь мне показалось что это такой геморой

    - cygwin, командная строка :blink:

  9. да да конечно :blush: (спасибо за поправку подредактировал)

    lwIP

     

    и ещё вопрос в догонку

     

    почему многие исходные тектсы например uCOS

    принципиально предназначны под GNU компиляторы?

    почему нельзя это скомпилировать например в IARe?

    (какой-то синтаксис С или какая-то особая компоновка или ещё что ...?)

  10. Есть желание использовать lwIP для LPC2214 :) и CS8900 :)

    а так же писать в IARE без RTOS

     

    Кто-нибудь подскажет это реально.

    Потенциальные проблемы. :smile3009: ...?

     

     

    или может есть альтернатива lwIP ???

  11. Пытаюсь в OCD командере запрограммировать LPC 2214

    формат elf для работы во внутреннем ОЗУ

     

    Начинает писаться но потом выдаёт ошибку unknow fault , Error during download

     

    PC устанавливается на нужный адрес 40000000

     

    потом пишет cabel disconnect т.е. видимо процессор совсем зависает :cranky:

     

     

    такое же и с внешней RAM

     

     

    Всем кто ответит заранее большое спасибо!

  12. Отладочная плата LPC-E2214

    IAR-4.20 eval

     

    в плате записана тестовая программа (не понятно где во внутр памяти или во внешней BOOT1/0 не влияют она всегда выполняется)

     

    в иаре скомпилировал код. Запускаю DEBUG (macraigor wigler)

    он показывает окошко DOWNLOADING (как будто что-то записывает)

     

    но запускается вновь тестовая программа (которая была в плате)

     

    ещё иар выдаёт сообщение

    Sat Feb 19 21:05:24 2005: JTAG API v48.7, Wiggler v1.41, ARM ID: 4F1F0F0F

    Sat Feb 19 21:05:25 2005: 302 bytes downloaded (0.56 Kbytes/sec)

    Sat Feb 19 21:05:25 2005: Loaded debugee: I:\ARM_study\lpc-e22xx_test\Release\Exe\H2214_Board_Test.d79

    Sat Feb 19 21:05:25 2005: Target reset

    Sat Feb 19 21:05:25 2005: Driver does not support code coverage.

     

     

    Наверное я что-то недогоняю.

  13. Да уж компаунд ковырять не улыбается :)

     

    Заказали отладочную плату с LPC-2214

     

    УРА! :w00t:

     

    Спасибо всем кто откликнулся.

     

    А вообще за 100$ оказывается можно купить недурную готовую платформу. :excl:

  14. Спасибо всем.

     

    Глюк остался и с выделенной кучей. :wacko:

     

    А насчёт размеров стеков полностью согласен. Лучше заранее определить под них заведомо много памяти.

     

    Несколько раз натыкался из-за этого на появляющиеся с ростом кода непонятные глюки :smile3046:

  15. В настройках проекта иара есть выделение памяти под heap

    она используется для динамического выделения памяти - new alloc и т д

     

    В проекти динамическое выделение памяти не используется поставил размер 0.

     

    Сначала вроде программа работает нормально, но иногда появляются странные трудноотлаживаемые глюки. :(

     

    Поставил размер кучи 0х30 вроде нормально работает :)

     

    Может это ещё на что-то влияет?..

×
×
  • Создать...