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

    

gopher

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный
  1. как активировать tcp keepalive на встроенном TCP/IP стеке SIM900R? Для telit 862 keepalive включался через "AT#SCFGEXT=1,0,0,5", а вот как это сделать на SIM900 что-то не нахожу.
  2. lto таки заработало . как оказывается в LDFLAGS кроме -flto надо еще и флаги оптимизации добавлять. добавил в makefile КодLDFLAGS += -flto $(OPTIMIZATION) CFLAGS += -flto и вот оно, счастье. Кодс -Os -combine -fwhole-program (gcc version 4.5.0 20091115 т.к. в 4.7 -combine убрали):   text    data     bss 16665      40    4232 c -Os -flto (gcc gcc version 4.7.0 20110328)    text    data     bss   16113      40    4240
  3. Цитата(klen @ Mar 28 2011, 23:37) arm mingw32 http://klen.org/Files/DevTools/kgp-arm-eab...-32_20110328.7z спасибо! смеха ради сравнил время сборки проекта на win2008x64: kgp-arm-eabi_x86-32 собарает за ~25 сек, kgp-arm-eabi_x86_64 за ~28 сек. В обоих случаях размер бинаря на выходе идентичен. А lto так и не заработало , падает с ошибкой 'internal compiler error: in insert_value_copy_on_edge, at tree-outof-ssa.c:242'
  4. Цитата(klen @ Mar 27 2011, 19:07) arm http://klen.org/Files/DevTools/kgp-arm-eab...-64_20110327.7z а можно kgp-arm-eabi еще и под x86 ?
  5. Цитата(Spym @ Nov 3 2010, 17:53) Почему так? Ведь в этом случае в stdout должно было уйти "Something string". обычная буферизация. попробуйте так Кодprintf("Something string"); fflush(stdout);
  6. Цитата(mempfis_ @ Dec 28 2009, 11:05) Спасибо за идею. Как вариан очень даже может подойти можно еще 'AT+CMGD=?' попробовать. команда возвращает список занятых ячеек. КодAT+CMGD=? +CMGD: (1,2,3,6,7,17,18,19,20,37,38,39,47),(0-4) OK
  7. LPC2368/78 пины USB_D+ и USB_D-

    я так настраиваю: Код    FIO0DIR |= 1UL << 29; // P0.29     FIO0DIR |= 1UL << 30; // P0.29     IODIR0 |= 1UL << 29; // P0.29     IODIR0 |= 1UL << 30; // P0.29 user.manual.lpc23xx.pdf, GPIO port Direction register IODIR and FIODIR(IO[0/1]DIR - 0xE002 80[0/1]8 and FIO[0/1/2/3/4]DIR - 0x3FFF C0[0/2/4/6/8]0) Remark: GPIO pins P0.29 and P0.30 are shared with the USB D+/− pins and must have the same direction. If either P0DIR bits 29 or 30 are configured LOW in the IO0DIR or FIO0DIR registers, both, P0.29 and P0.30, are inputs. If both, P0DIR bit 29 and bit 30 are HIGH, both, P0.29 and P0.30, are outputs.
  8. WinAVR

    Цитата(Сергей Борщ @ Jul 3 2008, 14:07) Ну так покажите. На словах тяжело воспринимается. У вас скорее всего как volatile был объявлен сам указатель, а не то, на что он указывет. Или наоборот. Отсюда и проблемы. может покажите как правильно объявлять указатель на volatile, а как указатель с квалификатором volatile. Недавно столкнулся с этим вопросом, ничего толкового не нашел ((
  9. sizeof() странно себя ведёт...

    попробуйте делать typedef отдельно от packed. Проверил на gcc version 3.3.1, sizeof(param) дает 94 Кодstruct param_t { unsigned short Version; unsigned short Hi_Addr; unsigned short Lo_Addr; unsigned short CtlReg; unsigned short H_size; unsigned short V_size; unsigned short AccBin; unsigned short XDelay; unsigned short CCDTemp; unsigned short GainDark; unsigned short Period; unsigned short Tint; unsigned short DualRatio; unsigned short FIFOState; unsigned short InfoReg; unsigned short Data[32]; } __attribute__((packed)); typedef struct param_t param;
  10. прыгнуть на другой адрес в ROM

    делал нечто похожее, но на lpc2378. Проблема была в том, что startup от первого приложения переводил процессор в user mode, соответственно startup от второго приложения уже не мог переключиться в supervisor mode (нужно для инициализации стеков в каждом их режимов). Все заработало после того, как я убрал перевод первого приложения в user mode из startup.
  11. lpc2378 и ETHERNET RAM

    Цитата(zltigo @ Feb 14 2008, 03:11) Самый простой - сказать линкеру, что у него два блока RAM - пусть линкует. вот я и спрашиваю, как это объяснить линкеру.
  12. lpc2378 и ETHERNET RAM

    В проекте используется lpc2378. Ни ETHERNET ни USB не используется. Возможно ли использовать ETHERNET RAM (16 kB) и USB RAM (8 KB) как обычную ОЗУ? Если да, то как это сделать? Для разработки используется keil + GCC, как я понимаю надо править LinkerScript.ld, но я не понял как указать для секции DATA два участка памяти. Какие будут мысли по этому поводу?