Martinayotte
Ср 13 мая 2015 г. 11:21
У меня есть доска NetDuino 2 Plus, сидящая в моем ящике с некоторое время, и она начала плакать сегодня, говоря: «Я тоже STM32 !"
Итак, у меня есть идея, что, может быть, еще один хороший кандидат на STM32duino ...
Это уверен, что, вероятно, это не будет тривиальным, но я открываю для предложения о том, как/где начать »этот проект.
(Кстати, у меня также есть Netduino 1 Plus, который тоже сидит там, но это не STM32, это AT91SAM7X ... Я начал поиски, и я думаю, что некоторые люди заставляли Freertos на них бегут)
Итак, у меня есть идея, что, может быть, еще один хороший кандидат на STM32duino ...
Это уверен, что, вероятно, это не будет тривиальным, но я открываю для предложения о том, как/где начать »этот проект.
(Кстати, у меня также есть Netduino 1 Plus, который тоже сидит там, но это не STM32, это AT91SAM7X ... Я начал поиски, и я думаю, что некоторые люди заставляли Freertos на них бегут)
Мадиас
Чт 14 мая 2015 г. 8:35 утра
Я бы начал с вопроса: «Как прошить доску?"
Я вижу мини-заголовок JTAG, но я думаю, что ни у кого нет опыта, прошивающего доску через JTAG (я подозреваю, что эти булавки не равны с помощью ST-Link или могут быть переделан для нее) . Итак, две возможности:
ST-LINK: доступны ли все булавки?
Сериал: Может быть, самый простой способ?
Я вижу мини-заголовок JTAG, но я думаю, что ни у кого нет опыта, прошивающего доску через JTAG (я подозреваю, что эти булавки не равны с помощью ST-Link или могут быть переделан для нее) . Итак, две возможности:
ST-LINK: доступны ли все булавки?
Сериал: Может быть, самый простой способ?
Rogerclark
Чт 14 мая 2015 12:04
Stlink нужно только 2 контакта
Часы и данные
Даже если они переназначены, положите Boot0 High, а Stlink должен работать
Или зонд черной магии. Смотрите Рика для бинарника BMP
Часы и данные
Даже если они переназначены, положите Boot0 High, а Stlink должен работать
Или зонд черной магии. Смотрите Рика для бинарника BMP
Martinayotte
Чт 14 мая 2015 г., 16:38
Привет, ребята !
Просто чтобы сообщить вам: я обнаружил, что NetDuino2plus поддерживается MicropyThon. Итак, я попробовал, скомпилировал, вспыхнул с DFU-UTIL, перезагружен, и я получил подсказку над USB-сериалом.
Micro Python на 2015-05-14; Netduinoplus2 с STM32F405RG
Введите "help ()" для получения дополнительной информации.
>>> Пиб.Светодиод (1).переключать()
>>> Пиб.Светодиод (2).переключать()
Итак, я почти уверен, что STM32Duino тоже может работать, если STM32F405 станет поддержанным !
РЕДАКТИРОВАТЬ: Я нашел эту ссылку https: // code.Google.com/p/libmaple-f405/, Так что это значит, это выполнимо.
Просто чтобы сообщить вам: я обнаружил, что NetDuino2plus поддерживается MicropyThon. Итак, я попробовал, скомпилировал, вспыхнул с DFU-UTIL, перезагружен, и я получил подсказку над USB-сериалом.
Micro Python на 2015-05-14; Netduinoplus2 с STM32F405RG
Введите "help ()" для получения дополнительной информации.
>>> Пиб.Светодиод (1).переключать()
>>> Пиб.Светодиод (2).переключать()
Итак, я почти уверен, что STM32Duino тоже может работать, если STM32F405 станет поддержанным !
РЕДАКТИРОВАТЬ: Я нашел эту ссылку https: // code.Google.com/p/libmaple-f405/, Так что это значит, это выполнимо.
Rogerclark
Пт 15 мая 2015 г. 2:06
@martinayotte
Вы можете просто попробовать текущую версию F4
Он работает на F407, поскольку Mubase использует его.
Примечание. Он от более старой ветви Libmaple, поэтому использует более старый Arduino 0022 API, E.g не имеет серийного.Peek или поток и т. д
Но это работает
Я действительно хотел бы, чтобы у меня было больше времени, чтобы обновить материал F4 до уровня F103, но я просто не в настоящее время, так как на F103 еще не так много, что можно сделать
Я думал о том, как мы можем объединить кодовую базу, для F1 и F4, но все же есть разные файлы.
Проблема в том, что Arduino IDE просто компилирует и связывает все файлы, которые он находит в папке Cores
Таким образом, нам нужно переместить файлы, конкретные процессора, в файлы C в код в заголовках
А потом DO Conditional включает обратно в исходные файлы
эн.глин.
gpio_f1.C нужно будет переименовать в gpio_f1_c.H и новый файл GPIO.C создано, которое включает в себя gpio_f1_c.h (или gpio_f4_c.h) и т.д
Другое осложнение заключается в том, что некоторые включают из папки системы, а некоторые не
На самом деле, если мы поместим gpio_f1_c.H в системную папку и в системе Supders System для F1 и F4, нам не нужно было бы делать условные включения в GPIO.c как это могло быть
#include "gpio_c.H "И это мы могли бы изменить компилятор, включающие пути в Baords.txt file
Это потребует перехода на доски.TXT и платформа.txt, но я думаю, что можно сделать итеративно, я.e -файл по файлу, вместо того, чтобы пытаться изменить все много за один раз и полностью его сломать
В конечном итоге я знаю, что нам было бы лучше, чтобы переключиться на заголовки STM, но я думаю, что это было бы гораздо большей работой, чем просто попытаться объединить F1 и F4
Я могу видеть только 13 файлов в репо F1, которые имеют _f1 в их имени файла
Ммм
Теперь я смотрю на это.
Они сделали все по -другому, но это менее эффективно,
В папке F4 у них есть файлы с #IFDEF STM32F2 вокруг всего кода
Это будет работать, но это означает, что компилятор будет собирать не менее 12 пустых файлов каждый раз, поэтому немного замедлит сборку
Я думаю, что метод включения через разные пути, указанные в платформе.TXT, вероятно, самый эффективный
Редактировать.
Не уверен, почему они это сделали
Но это файлы F2 в репо F4, которые будут использоваться как в досках.txt это определяет
-DSTM32F2
Вы можете просто попробовать текущую версию F4
Он работает на F407, поскольку Mubase использует его.
Примечание. Он от более старой ветви Libmaple, поэтому использует более старый Arduino 0022 API, E.g не имеет серийного.Peek или поток и т. д
Но это работает
Я действительно хотел бы, чтобы у меня было больше времени, чтобы обновить материал F4 до уровня F103, но я просто не в настоящее время, так как на F103 еще не так много, что можно сделать
Я думал о том, как мы можем объединить кодовую базу, для F1 и F4, но все же есть разные файлы.
Проблема в том, что Arduino IDE просто компилирует и связывает все файлы, которые он находит в папке Cores
Таким образом, нам нужно переместить файлы, конкретные процессора, в файлы C в код в заголовках
А потом DO Conditional включает обратно в исходные файлы
эн.глин.
gpio_f1.C нужно будет переименовать в gpio_f1_c.H и новый файл GPIO.C создано, которое включает в себя gpio_f1_c.h (или gpio_f4_c.h) и т.д
Другое осложнение заключается в том, что некоторые включают из папки системы, а некоторые не
На самом деле, если мы поместим gpio_f1_c.H в системную папку и в системе Supders System для F1 и F4, нам не нужно было бы делать условные включения в GPIO.c как это могло быть
#include "gpio_c.H "И это мы могли бы изменить компилятор, включающие пути в Baords.txt file
Это потребует перехода на доски.TXT и платформа.txt, но я думаю, что можно сделать итеративно, я.e -файл по файлу, вместо того, чтобы пытаться изменить все много за один раз и полностью его сломать
В конечном итоге я знаю, что нам было бы лучше, чтобы переключиться на заголовки STM, но я думаю, что это было бы гораздо большей работой, чем просто попытаться объединить F1 и F4
Я могу видеть только 13 файлов в репо F1, которые имеют _f1 в их имени файла
Ммм
Теперь я смотрю на это.
Они сделали все по -другому, но это менее эффективно,
В папке F4 у них есть файлы с #IFDEF STM32F2 вокруг всего кода
Это будет работать, но это означает, что компилятор будет собирать не менее 12 пустых файлов каждый раз, поэтому немного замедлит сборку
Я думаю, что метод включения через разные пути, указанные в платформе.TXT, вероятно, самый эффективный
Редактировать.
Не уверен, почему они это сделали
Но это файлы F2 в репо F4, которые будут использоваться как в досках.txt это определяет
-DSTM32F2
Martinayotte
Сб 16 мая 2015 г., 17:11
Спасибо, Роджер !
Я попробую, когда у меня будет шанс (у меня тоже есть проблемы с тем, чтобы найти время, что я хочу )
Я попробую, когда у меня будет шанс (у меня тоже есть проблемы с тем, чтобы найти время, что я хочу )
Martinayotte
Чт 28 мая 2015 г. 1:50 утра
Просто чтобы дать обновление здесь о моих экспериментах netduino2plus ...
Как вы, возможно, видели, я добился успеха, делая эскиз на доске STM32Stamp с STM32Duino IDE, ViewTopic.PHP?F = 39&T = 118#P1513.
В последние дни я попробовал то же самое на своем netduino2plus, но не добился успеха.
Я думаю, что это даже не достигает настройки (). Даже для примера Blink.
Это немного странно, так как обе доски используют один и тот же F405. Мне придется добавить немного кода отладки, чтобы узнать...
По крайней мере, у меня есть netduino2plus, работающий почти с тем же кодом, который у меня был для STM32Stamp, прежде чем использовать STM32Duino, на основе STM32F4XX_DSP_STDPERIPH_LIB_V1.4.0, мигающие светодиоды и служить USB -серийному соединению.
Как вы, возможно, видели, я добился успеха, делая эскиз на доске STM32Stamp с STM32Duino IDE, ViewTopic.PHP?F = 39&T = 118#P1513.
В последние дни я попробовал то же самое на своем netduino2plus, но не добился успеха.
Я думаю, что это даже не достигает настройки (). Даже для примера Blink.
Это немного странно, так как обе доски используют один и тот же F405. Мне придется добавить немного кода отладки, чтобы узнать...
По крайней мере, у меня есть netduino2plus, работающий почти с тем же кодом, который у меня был для STM32Stamp, прежде чем использовать STM32Duino, на основе STM32F4XX_DSP_STDPERIPH_LIB_V1.4.0, мигающие светодиоды и служить USB -серийному соединению.
Rogerclark
Чт 28 мая 2015 г., 2:43
Я не уверен, использует ли F405 тот же код инициализации, векторные таблицы и т. Д
Возможно, вам понадобится создать новую папку варианта для F405, если у нее меньше функций, чем F407
Это область кода, с которой я не так знаком. На F103 все процессоры кажутся довольно похожими, и есть только один ISRS.S файл для всех них.
Но мое понимание F3 и F4 в том, что серия гораздо более фрагментирован, чем серия F103.
Если у вас есть время, это, вероятно, стоит загрузить STM32Cube (с сайта STM) и создать 2 различных проекта, один для F407 и один для F405 и посмотрите на файлы, которые он экспортирует.
Специально с точки зрения векторных таблиц и кода запуска
Я думаю, что у Рика Кимбалла есть немного больше справки по этому
Возможно, вам понадобится создать новую папку варианта для F405, если у нее меньше функций, чем F407
Это область кода, с которой я не так знаком. На F103 все процессоры кажутся довольно похожими, и есть только один ISRS.S файл для всех них.
Но мое понимание F3 и F4 в том, что серия гораздо более фрагментирован, чем серия F103.
Если у вас есть время, это, вероятно, стоит загрузить STM32Cube (с сайта STM) и создать 2 различных проекта, один для F407 и один для F405 и посмотрите на файлы, которые он экспортирует.
Специально с точки зрения векторных таблиц и кода запуска
Я думаю, что у Рика Кимбалла есть немного больше справки по этому
Martinayotte
Чт 28 мая 2015 г., 13:21
Привет, Роджер,
Поскольку тот же набросок работает нормально на моей плате STM32Stamp, которая имеет тот же F405, я не думаю, что проблема сама по себе в коде инициализации.
Я думаю, что это висит, вероятно, из -за оборудования вокруг него, что было вызвано нежелательным обработчиком прерываний.
Когда я получу шанс, я добавлю немного трассировки отладки через последовательный порт в коде инициализации, надеясь выяснить, какая аппаратная функция вызывает подвес.
Поскольку тот же набросок работает нормально на моей плате STM32Stamp, которая имеет тот же F405, я не думаю, что проблема сама по себе в коде инициализации.
Я думаю, что это висит, вероятно, из -за оборудования вокруг него, что было вызвано нежелательным обработчиком прерываний.
Когда я получу шанс, я добавлю немного трассировки отладки через последовательный порт в коде инициализации, надеясь выяснить, какая аппаратная функция вызывает подвес.
Martinayotte
Чт 28 мая 2015 г. 20:26
Я искал схему NetDuino2plus, чтобы узнать, какое оборудование может быть проблемой, потому что даже добавление трассировки отладки через сериал не работал.
И я внезапно столкнулся с проблемой и пришел к выводу:
Довольно просто, внешний генератор не 8 МГц, а 25 МГц (потому что он делился с Ethernet Phy) !
Вот почему процессор замораживал прямо при запуске даже до настройки (), PLL производил разрыв более на 3 раза 168 МГц (525 МГц).
Итак, я смотрю на код и выясняю, как настроить SetupClock168 () с #Define. После перекомпиляции эскиза все начинают работать правильно, GPIO, Serial1, а также Serialusb !
Моя следующая задача: попытка использовать библиотеку ethercard_stm от vassilis, поскольку NetDuino2plus имеет один Enc28j60 на борту !
РЕДАКТИРОВАТЬ: @Roger, я отправил вам PullRequest для изменений...
И я внезапно столкнулся с проблемой и пришел к выводу:
Довольно просто, внешний генератор не 8 МГц, а 25 МГц (потому что он делился с Ethernet Phy) !
Вот почему процессор замораживал прямо при запуске даже до настройки (), PLL производил разрыв более на 3 раза 168 МГц (525 МГц).
Итак, я смотрю на код и выясняю, как настроить SetupClock168 () с #Define. После перекомпиляции эскиза все начинают работать правильно, GPIO, Serial1, а также Serialusb !
Моя следующая задача: попытка использовать библиотеку ethercard_stm от vassilis, поскольку NetDuino2plus имеет один Enc28j60 на борту !
РЕДАКТИРОВАТЬ: @Roger, я отправил вам PullRequest для изменений...
Rogerclark
Чт 28 мая 2015 г., 21:31
Спасибо, Мартин
Влияет ли изменения другие доски или это через #Define для вашей доски?
Влияет ли изменения другие доски или это через #Define для вашей доски?
Martinayotte
Чт 28 мая 2015 г., 21:50
Привет, Роджер,
Я добавил его, используя #ifdef arduino_stm32f4_netduino2plus, поскольку этот определение уже было сгенерировано досками/платформами меканизма.
Вы также заметите, что я добавил возможный пятый аргумент в Maple_upload, если предоставлен, он добавит «-dfuse-address» к вызову в dfu-util.
Это не должно влиять на других. (Кстати, я добавил это, потому что мой DFU-UTIL жалуется, что бинар не является *.Файл DFU, необработанные файлы, кажется, требуют этого dfuse-address.)
Я добавил его, используя #ifdef arduino_stm32f4_netduino2plus, поскольку этот определение уже было сгенерировано досками/платформами меканизма.
Вы также заметите, что я добавил возможный пятый аргумент в Maple_upload, если предоставлен, он добавит «-dfuse-address» к вызову в dfu-util.
Это не должно влиять на других. (Кстати, я добавил это, потому что мой DFU-UTIL жалуется, что бинар не является *.Файл DFU, необработанные файлы, кажется, требуют этого dfuse-address.)
Rogerclark
Чт 28 мая 2015 г., 21:56
Мартин
Хорошо. О #Define
Обычно с F103 я не заинтересован в том, чтобы поместить конкретные доски в центре, и я бы, вероятно, попытался сделать это через новый вариант.
Но поскольку F4 Stuff - это в основном экспериментальный побочный эффект, я думаю, что сейчас все в порядке, и мы можем разобраться, когда и если я когда -нибудь объединяю базы кода F4 и F1.
Я проверю, что все еще работает на моем F407
Re dfu
Хорошо. Я даже не знал, что он может загрузить через DFU, я думал, что это только Stlink
Или вы добавили это.
В любом случае
Не беспокойся
Хорошо. О #Define
Обычно с F103 я не заинтересован в том, чтобы поместить конкретные доски в центре, и я бы, вероятно, попытался сделать это через новый вариант.
Но поскольку F4 Stuff - это в основном экспериментальный побочный эффект, я думаю, что сейчас все в порядке, и мы можем разобраться, когда и если я когда -нибудь объединяю базы кода F4 и F1.
Я проверю, что все еще работает на моем F407
Re dfu
Хорошо. Я даже не знал, что он может загрузить через DFU, я думал, что это только Stlink
Или вы добавили это.
В любом случае
Не беспокойся
Martinayotte
Чт 28 мая 2015 г., 22:11
Привет снова Роджер,
На самом деле, ваш F407 по -прежнему будет иметь значение 8 МГц, только NetDuino получит 25 МГц.
Во время слияния или рефакторинга, возможно, это хорошая идея, чтобы иметь какую -то достоинство ».ext_osc = 25 "или" доска.ext_osc = 8 ", но сейчас я думаю, что #ifdef проще. Я смотрю на свою доску F429, и это также 8 МГц. Итак, я предполагаю, что единственные доски с разными генераторами - это то, что разделяет его с Phy.
О DFU, так как у меня еще не было моего нового ST-Link, у меня не было большого выбора для загрузки, даже с моим кленовым минином:
Полагаясь на DFU или сериал, доступный через кнопку Boot0, как описано в документах STM.
Когда я впервые собрал STM32Stamp Фрэнка, я использовал сериал с STM32Loader.py, но это менее удобно.
Итак, почему я добавил это для этих двух досок STM32Stamp и NetDuino.
На самом деле, ваш F407 по -прежнему будет иметь значение 8 МГц, только NetDuino получит 25 МГц.
Во время слияния или рефакторинга, возможно, это хорошая идея, чтобы иметь какую -то достоинство ».ext_osc = 25 "или" доска.ext_osc = 8 ", но сейчас я думаю, что #ifdef проще. Я смотрю на свою доску F429, и это также 8 МГц. Итак, я предполагаю, что единственные доски с разными генераторами - это то, что разделяет его с Phy.
О DFU, так как у меня еще не было моего нового ST-Link, у меня не было большого выбора для загрузки, даже с моим кленовым минином:
Полагаясь на DFU или сериал, доступный через кнопку Boot0, как описано в документах STM.
Когда я впервые собрал STM32Stamp Фрэнка, я использовал сериал с STM32Loader.py, но это менее удобно.
Итак, почему я добавил это для этих двух досок STM32Stamp и NetDuino.
Rogerclark
Чт 28 мая 2015 г., 23:01
Матрин,
ХОРОШО. Добавить сериал легко.
Я не уверен, как вам удалось загрузить через DFU, вам не нужно загрузчик ??
Я не знал о загрузчике Maple для F4. Bootloader F1 почти наверняка не будет работать на F4, поскольку настройка, управление GPIO и т. Д.
Но я уверен, что это может быть перенесено.
На данный момент код F4, кажется, поддерживает USB OTG, но я не совсем уверен, что он делает. Я попытался подключить порт OTG к своему компьютеру, но он не перечисляется, поэтому я подозреваю, что это USB -хост.
мммм.
Он начинает выглядеть все больше и больше, похоже, мне нужно начать сложный процесс объединения кодовой базы F4 и F1, но я подозреваю, что ее дни работы
ХОРОШО. Добавить сериал легко.
Я не уверен, как вам удалось загрузить через DFU, вам не нужно загрузчик ??
Я не знал о загрузчике Maple для F4. Bootloader F1 почти наверняка не будет работать на F4, поскольку настройка, управление GPIO и т. Д.
Но я уверен, что это может быть перенесено.
На данный момент код F4, кажется, поддерживает USB OTG, но я не совсем уверен, что он делает. Я попытался подключить порт OTG к своему компьютеру, но он не перечисляется, поэтому я подозреваю, что это USB -хост.
мммм.
Он начинает выглядеть все больше и больше, похоже, мне нужно начать сложный процесс объединения кодовой базы F4 и F1, но я подозреваю, что ее дни работы
Martinayotte
Чт 28 мая 2015 г., 23:19
Привет, Роджер,
Для DFU он использует загрузчик ROM, который предоставляется STM, он смотрит на последовательный порт, но также и USB, если нажимается Boot0 во время питания. Итак, мой эскиз сейчас загружен без какого -либо другого загрузчика.
И когда я упоминал загрузчик TCP, это не значит, что весь код из вашего текущего загрузчика необходим, может быть, лишь немногие помощники, так что не беспокойтесь об этом ...
Для DFU он использует загрузчик ROM, который предоставляется STM, он смотрит на последовательный порт, но также и USB, если нажимается Boot0 во время питания. Итак, мой эскиз сейчас загружен без какого -либо другого загрузчика.
И когда я упоминал загрузчик TCP, это не значит, что весь код из вашего текущего загрузчика необходим, может быть, лишь немногие помощники, так что не беспокойтесь об этом ...
Rogerclark
Пт 29 мая 2015 г., 4:36 утра
Мартин,
ОК, о встроенном DFU на F4. На F1, когда Boot0 высок на загрузке, он входит в режим последовательного загрузчика, который я использовал для постоянного использования.
Однако теперь у нас есть общий загрузчик, который не нуждается в каком -либо специальном внешнем оборудовании на F1, я склонен использовать это большую часть времени.
Чтобы сделать загрузки TCP, я не вижу, как вы можете сделать это без внешнего процессора или загрузчика, который общается через TCP.
загрузчик TCP будет сильно отличаться от того, что на F1, который является DFU
Я не уверен, есть ли какие-либо стандарты для повторного разбивания TCP, я думаю, так, как я думаю, они обсуждали это на форуме ESP8266, но это может быть встроенная функция на ESP8266 как его по своей природе сетевое устройство.
ОК, о встроенном DFU на F4. На F1, когда Boot0 высок на загрузке, он входит в режим последовательного загрузчика, который я использовал для постоянного использования.
Однако теперь у нас есть общий загрузчик, который не нуждается в каком -либо специальном внешнем оборудовании на F1, я склонен использовать это большую часть времени.
Чтобы сделать загрузки TCP, я не вижу, как вы можете сделать это без внешнего процессора или загрузчика, который общается через TCP.
загрузчик TCP будет сильно отличаться от того, что на F1, который является DFU
Я не уверен, есть ли какие-либо стандарты для повторного разбивания TCP, я думаю, так, как я думаю, они обсуждали это на форуме ESP8266, но это может быть встроенная функция на ESP8266 как его по своей природе сетевое устройство.
Mrburnette
Пт 29 мая 2015 г., 14:22
Rogerclark написал:<..>
Чтобы сделать загрузки TCP, я не вижу, как вы можете сделать это без внешнего процессора или загрузчика, который общается через TCP.
загрузчик TCP будет сильно отличаться от того, что на F1, который является DFU
Я не уверен, есть ли какие-либо стандарты для повторного разбивания TCP, я думаю, так, как я думаю, они обсуждали это на форуме ESP8266, но это может быть встроенная функция на ESP8266 как его по своей природе сетевое устройство.
Чтобы сделать загрузки TCP, я не вижу, как вы можете сделать это без внешнего процессора или загрузчика, который общается через TCP.
загрузчик TCP будет сильно отличаться от того, что на F1, который является DFU
Я не уверен, есть ли какие-либо стандарты для повторного разбивания TCP, я думаю, так, как я думаю, они обсуждали это на форуме ESP8266, но это может быть встроенная функция на ESP8266 как его по своей природе сетевое устройство.
Martinayotte
Пт 29 мая 2015 г. 14:53
@Ray, действительно, это интересно. Я пробовал это несколько лет назад. Но это служит совершенно разным целям: обмен USB -устройствами в сети.
@Roger, фактически, нет никаких стандартных. Я тоже следую за форумами ESP, и недавно кто -то придумал Rboot, который я еще не пробовал ...
@Roger, фактически, нет никаких стандартных. Я тоже следую за форумами ESP, и недавно кто -то придумал Rboot, который я еще не пробовал ...
Martinayotte
Пн, 08 июня 2015 г., 22:12
После NSS против CSN SAGA на SPI я заставил MicroSD работать над моим NetDuino2plus. Я использовал SD Lib, но я попробую еще раз, SDFAT Victor, он должен работать тоже, так как проблема заключалась в том, что знаменитая проблема NSS ...