|
Загрузчик + основная программа, IAP over Ethernet в MCU |
|
|
|
 |
Ответов
|
Apr 18 2013, 12:58
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518

|
Цитата(_Макс @ Apr 7 2013, 22:38)  .......необходимо каким-то образом передать DHCP настройки через RAM и перейти на исполнение main() основной программы. ........ Какие еще выгодные реализации IAP over Ethernet вы можете посоветовать? Что за контроллер? Например, у STM'ов есть Backup регистры, которые сохраняют свое состояние после перезагрузки контроллера(без отключения питания), а если STM'му подключить батарейку, то состояние этих регистров сохраняется даже после отключения питания(пока не помрет батарейка). Кстати, а зачем передавать настройки DHCP из bootloader'a в основную программу? Все равно в main'е инициализируете стек? У меня, например, в bootloader'e uip стек, а в основной программе lwip, и там, и там есть DHCP клиент, т.е. никакие настройки от botloader'a о DHCP, DNS, IP не передаются.
--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
|
|
|
|
|
May 4 2013, 17:07
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Цитата(PoReX @ Apr 18 2013, 15:58)  Кстати, а зачем передавать настройки DHCP из bootloader'a в основную программу? Все равно в main'е инициализируете стек? У меня, например, в bootloader'e uip стек, а в основной программе lwip, и там, и там есть DHCP клиент, т.е. никакие настройки от botloader'a о DHCP, DNS, IP не передаются. STM32F1xx, но баттарейку никто не подлючал. DHCP параетры нужно передать, чтобы после перехода от бутлоадера к основной программе стек был инициализирован уже имеющимися параметрами сети, иначе если стек начнет запрашивать новые, то может получить иной IP, а этого быть не должно. Поэтому суть такова, что сетевые параметры сохраняются в области RAM, и если они там присутствуют и валидные, то стек инициализируются ими, а не по DHCP. Оба стека lwIP. Вот так объявлен IP адрес: Код struct ip_addr { PACK_STRUCT_FIELD(u32_t addr); } PACK_STRUCT_STRUCT; PACK_STRUCT_END Вынес значение сетевых параметров в отдельный файл: Код static struct ip_addr g_ip; static struct ip_addr g_gw; static struct ip_addr g_mask; static struct ip_addr g_checksum; Делается проверка, что значения сетевых параметров в памяти не мусор: Код if( (uint32_t) g_ip ^ (uint32_t) g_gw ^ (uint32_t) g_mask == g_checksum) { // Action } Но компилятор отдает: Код src\netconf.c(82): error: #171: invalid type conversion Как правильно преобразовать тип, чтобы проверить валидность XOR`ом?
|
|
|
|
|
May 4 2013, 18:48
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Может так: Код struct ip_t { uint8_t ip[4]; };
union un_ipAddr { struct ip_t IP; uint32_t IP_ul; }; un_ipAddr ip, mask, gate, sum; void main { if ((ip.IP_ul^mask.IP_ul^gate.IP_ul)==sum.IP_ul) { } } Цитата(_Макс @ May 4 2013, 20:07)  Как правильно преобразовать тип, чтобы проверить валидность XOR`ом? CRC бы тут какую, а не xor.
|
|
|
|
Сообщений в этой теме
_Макс Загрузчик + основная программа Apr 7 2013, 18:38 aaarrr Цитата(_Макс @ Apr 7 2013, 22:38) Как выд... Apr 7 2013, 21:00 _Макс Где этот скрипт лежит? Что это за секция такая? Apr 8 2013, 08:08 aaarrr Лежит в составе проекта (.scat), по умолчанию гене... Apr 8 2013, 08:37 _Макс Цитата(aaarrr @ Apr 8 2013, 11:37) Лежит ... Apr 10 2013, 14:09  Lotor Цитата(_Макс @ Apr 10 2013, 18:09) не мог... Apr 10 2013, 15:09 aaarrr Его может не быть, только если выбрана опция ... Apr 10 2013, 16:23 _Макс Если у меня основная программа иницирует программн... Apr 11 2013, 14:04 _Артём_ Цитата(_Макс @ Apr 11 2013, 17:04) будет ... Apr 11 2013, 14:25 scifi Цитата(_Макс @ Apr 11 2013, 18:04) Если у... Apr 11 2013, 14:27 adnega Цитата(_Макс @ Apr 11 2013, 18:04) Если у... Apr 11 2013, 16:13 _Макс Судя по тому, что здесь написано, переменная в сек... Apr 12 2013, 14:21 toweroff Цитата(_Макс @ Apr 12 2013, 18:21) Судя п... Apr 12 2013, 14:42 aaarrr Цитата(_Макс @ Apr 12 2013, 18:21) Судя п... Apr 12 2013, 16:05 toweroff Цитата(aaarrr @ Apr 12 2013, 20:05) Так C... Apr 12 2013, 16:13  aaarrr Цитата(toweroff @ Apr 12 2013, 20:13) но ... Apr 12 2013, 16:50   _Макс Цитата(_Артём_ @ May 4 2013, 21:48) Может... May 5 2013, 09:06    _Артём_ Цитата(_Макс @ May 5 2013, 12:06) Можно к... May 5 2013, 10:33     _Макс Цитата(_Артём_ @ May 5 2013, 13:33) Если ... May 5 2013, 13:33 alexandermas потому что кроме ipv4 ,бывает ipv6. а там не 4 ба... May 5 2013, 10:00 aaarrr Цитата(_Артём_ @ May 5 2013, 14:33) Если ... May 5 2013, 13:47 _Артём_ Цитата(aaarrr @ May 5 2013, 16:47) Так не... May 5 2013, 13:53  aaarrr Цитата(_Артём_ @ May 5 2013, 17:53) И? Эт... May 5 2013, 14:13   _Артём_ Цитата(aaarrr @ May 5 2013, 17:13) Но воо... May 5 2013, 14:16    aaarrr Цитата(_Артём_ @ May 5 2013, 18:16) Чтени... May 5 2013, 14:24     _Артём_ Цитата(aaarrr @ May 5 2013, 17:24) Оно.
А... May 5 2013, 14:44      aaarrr Цитата(_Артём_ @ May 5 2013, 18:44) Не по... May 5 2013, 15:28       _Артём_ Цитата(aaarrr @ May 5 2013, 18:28) Наприм... May 5 2013, 15:45 _Макс Цитата(aaarrr @ May 5 2013, 16:47) Тут к ... May 5 2013, 15:35  aaarrr Цитата(_Макс @ May 5 2013, 19:35) В моем ... May 5 2013, 15:42   _Макс Цитата(aaarrr @ May 5 2013, 18:42) Констр... May 5 2013, 21:22    aaarrr Цитата(_Макс @ May 6 2013, 01:22) Почему ... May 5 2013, 21:31 _Макс D имеющемся у меня коде, значение IP адреса присва... May 6 2013, 17:23 aaarrr 1. Из-за эндианизма
2. Можете May 6 2013, 17:29 _Макс Можно ли написать вот так, чтобы не выдумывать имя... May 7 2013, 13:09 aaarrr Цитата(_Макс @ May 7 2013, 17:09) Можно л... May 7 2013, 17:22 toweroff Нехилый парольчег
На почти 80 мегов May 7 2013, 14:16 _Макс Как я понимаю, в scatter файле можно только для .o... May 7 2013, 20:53 toweroff В скаттере объявите именованную область и адрес с ... May 7 2013, 21:04 _Макс Почему LR_IROM1, содержит вложенные ER_IROM1 и RW_... May 7 2013, 22:11 _Макс У меня получился вот такой scetter file:
КодLR_IRO... May 9 2013, 17:41 toweroff const в описании не забыли? May 10 2013, 05:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|