Jump to content

    

Alb

Участник
  • Content Count

    8
  • Joined

  • Last visited

Community Reputation

0 Обычный

Recent Profile Visitors

675 profile views
  1. Всем добрый день! Возникла такая задача - нужно гальванически развязать CAN шину (т.е не между контроллером и трансивером, а между трансиверами). Ставить дополнительный контроллер не хочется, а красивое решение на рассыпухе что то в голову не приходит. Если кто сталкивался с подобной задачей поделитесь идеями пожалуйста.
  2. Цитата(Andrew2000 @ Feb 1 2005, 18:36)Цитата(Alb @ Jan 31 2005, 20:44)PLC контроллер, надо будет портировать IsaGraf, CanOpen и т.п. Очень интересно, (понимаю, что не в тему) а IsaGraf, CanOpen Вы купили, или есть где в открытом виде ? Особенно интересен CanOpen По поводу CanOpen, сейчас мы используем собственную версию CanOpen-подобного протокола. А в данному проекте, я хочу попытаться использовать rllib http://www.pvbrowser.org/pvbrowser/sf/manu...html/index.html Сейчас мы используем собственный вариант softlogic, который годится для простых применений. Поэтому появился интерес к IsaGraf, серьёзной проработкой каналов приобретения (желательно бесплано, на время разработки) ещё не занимался. Если у кого есть информация на данную тему буду нуоочень благодарен.
  3. eCos

    Спасибо за информацию, сейчас буду разбираться.
  4. Какой выбор сделали вы среди большого многообразия ПО и отладочных плат? Своя плата. Какие задачи решают ваши устройства? PLC контроллер, надо будет портировать IsaGraf, CanOpen и т.п. Какой фирмы-производителя ARM-ы вы предпочитаете? Пока Philips LPC2294 (4 CAN канала), но более интересен SJA2020 (по моемому Philips его так обозвал. Какой отладочной платой вы пользуетесь (ссылка, ориент. стоимость, клон)? Своя. Какой пакет вы используете для разработки ПО контроллеров? (ссылка, С/ASM-компилятор) gcc. Какие есть проблемы с интсрументом? По русски разговаривать не умеет.
  5. eCos

    Если бы я умел им пользоваться.......
  6. eCos

    Сделал дизассемблер и обнаружил следующюю вещь: Disassembly of section .rom_vectors: 80000000 <__exception_handlers>: 80000000: ea00000e b 80000040 <_stext> 80000004: e59ff018 ldr pc, [pc, #24] ; 80000024 <.undefined_instruction> 80000008: e59ff018 ldr pc, [pc, #24] ; 80000028 <.software_interrupt> 8000000c: e59ff018 ldr pc, [pc, #24] ; 8000002c <.abort_prefetch> 80000010: e59ff018 ldr pc, [pc, #24] ; 80000030 <.abort_data> 80000014: 00000000 andeq r0, r0, r0 80000018: e59ff018 ldr pc, [pc, #24] ; 80000038 <.IRQ> 8000001c: e59ff018 ldr pc, [pc, #24] ; 8000003c <.FIQ> 00000000 <__exception_handlers>: 0: ea00000e b 40 <_stext> 4: e59ff018 ldr pc, [pc, #24] ; 24 <armreg_r9> 8: e59ff018 ldr pc, [pc, #24] ; 28 <armreg_r10> c: e59ff018 ldr pc, [pc, #24] ; 2c <armreg_fp> 10: e59ff018 ldr pc, [pc, #24] ; 30 <armreg_ip> 14: 00000000 andeq r0, r0, r0 18: e59ff018 ldr pc, [pc, #24] ; 38 <armreg_lr> 1c: e59ff018 ldr pc, [pc, #24] ; 3c <armreg_pc> Как видно описание переходов абсолютно одинаковое. Кто нибудь знает -- у LPC22xx счетчик команд равен при попадании на вектор равен 0 или адресу собласти на которую производится mapping.
  7. eCos

    mlt_xxx.h и mlt_xxx.ldi файлы я редактирую, также изменяю значение HAL_PLATFORM_RESET_ENTRY, но это почему то не помогает. Не зависимо от выбранного варианта запуска программа переходит на на 0-вые адреса. Попутно хотелось бы задать следующий вопрос: В RedBoot я использую ethernet контроллер. При запуске приложения в котором не используется ethernet всё работает. Для примера: +... waiting for BOOTP information Ethernet eth0: MAC address 08:88:12:34:56:78 IP: 10.0.0.41/255.255.252.0, Gateway: 10.0.0.5 Default server: 10.0.1.10 RedBoot™ bootstrap and debug environment [ROM] Non-certified release, version UNKNOWN - built 15:57:02, Jan 27 2005 Platform: ALBATROS MP9 PLC board (ARM7TDMI-S) Copyright © 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. RAM: 0x81000000-0x81200000, [0x8100a0a0-0x811ed000] available FLASH: 0x80000000 - 0x80400000, 64 blocks of 0x00010000 bytes each. == Executing boot script in 5.000 seconds - enter ^C to abort *[cyg_net_init] Init: mbinit(0x00000000) [cyg_net_init] Init: cyg_net_init_devs(0x00000000) Init device 'cs8900a_eth0' [cyg_net_init] Init: loopattach(0x00000000) [cyg_net_init] Init: ifinit(0x00000000) [cyg_net_init] Init: domaininit(0x00000000) [cyg_net_init] Init: cyg_net_add_domain(0x81000ca4) New domain internet at 0x00000000 [cyg_net_init] Init: cyg_net_add_domain(0x81000774) New domain route at 0x00000000 [cyg_net_init] Init: call_route_init(0x00000000) [cyg_net_init] Done Hello, eCos world! Если в приложение добавить: int main(void) { printf("Hello, eCos world!\n"); /////////////////////////////////////////////// init_all_network_interfaces(); while(1); } То при вызове init_all_network_interfaces(); просходит перезапуск программы. Хотя если нет Redboot всё работает без проблем (правда тогда прложение находится во внутренней flash). Может здесь присутствует какая то общая ошибка (моя естественно)?
  8. eCos

    Случайно наткнулся на данный форум. Сейчас я как раз занимаюсь сборкой eCos для платформы на базе LPC2294. У меня есть два вопроса : 1. Мне необходима возможность дистанционного обновления образа eCos. Соответственно вопрос RedBoot продолжает функционировать при запуске eCos? Так же непонятен процесс автоматичекого запуска Redboot-ом операционнки. 2. У меня следующая проблема RedBoot или приложение (например ping_test)откомпилированное с операционкой, запускаются исключительно с внутренней flash (стартовый адресс 0). Похоже у меня проблема с векторами прерываний, но как их изменить я не знаю. Буду благодарен за любой совет.