Стала задача прикрутить ENC28J60 к этим новым МК.
Сначала попробовал стек описанный в сообществе (easyelectronics.ru): Удалось связаться с микросхемой, читать/писать регистры, и это все ОК работало. Но вот добиться пинга так и не удалось, поэтому решил забросить и попробовать что нить другое.
Начал портировать стек от такса (http://tuxgraphics.org/electronics/200905/embedded-tcp-ip-stack.shtml)и через 15 минут получил пинг, был очень рад.
Но грабли настигли позже. Решил, чтобы проверить работу сделать простой web - сервер (пример test_OKworks.c). Но проблема в том что там используется GCC компилятор и специфические функции с avr/pgmspace.h которые работаю со флешем.
От суда вопросы:
1. Если я объявлю как const uint8_t *client_urlbuf вместо static prog_char *client_urlbuf; то IAR положит ее во flash? И вместо c = pgm_read_byte(progmem_s++), где const prog_char *progmem_s буду использовать просто с=progmem_s++, где const сhar *progmem_s
2. Или как нужно правильно общаться к flash памяти в STM8L в IAR'e?
3. Может есть у кого заготовка которая передефайнит эти специфические элементы в родные для IAR?
Для замены PSTR и других функций для работы с flash использовал следующую конструкцию
Код:
#define PSTR(s) s
#define pgm_read_byte(ptr) ((char)*(ptr))
#define prog_char char
#define PROGMEM
Но почему то получаю только пинг, побывал запустить test_OKworks.c, но почему то страничку не отображает.
Вот проект в IAR, надеюсь кто нить кто работал с этим стеком и хорошо знает GCC сможет мне что-то подсказать, где может быть ошибка?
P.S. IAR использую недавно, до этого использовал MikroC, но последний, как то глюковатый порой.
Возможно мне лучше портировать какой-нибудь другой стек, подскажите какой ? Задача сделать web сервер, и web склиент (отправка данных на сайт)