реклама на сайте
подробности

 
 
> NORDIC nrf51822, вопрос по ф-ии
Метценгерштейн
сообщение Aug 10 2015, 09:03
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



sd_app_event_wait();

Хочу девай в сон загнать. Вычитал, что этой ф-ей он гонится в сон. Но не понять систему- нужен хидер файл. Без него компилер не видит ф-ии. Как искать, какой хидер нужен? Где в документации указано, какой подключать?
Немного каша у меня.
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 14)
kolobok0
сообщение Aug 10 2015, 09:26
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Метценгерштейн @ Aug 10 2015, 12:03) *
...Как искать, какой хидер нужен? Где в документации указано, какой подключать?...


Либо толковую книгу = поход в книжный магазин, полистать, поискать, глазками глянуть (покупать не обязательно)
либо контекстный поиск по вашей файловой системе(если подразумевается что это барахло у вас на компе валяется)
либо поиск в гугле на соответствие название=файл...

согласитесь это элементарные шаги, которые можно решать самому...


ЗЫ
По первой ссылке есть архив проекта. Думаю он компилябельный...
тут встречается название вашей функции

Сообщение отредактировал kolobok0 - Aug 10 2015, 09:28
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 10 2015, 11:35
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Вы не поняли вопрос.
Я знаю что такое хидеры и как и куда их включать. Вопрос в другом- какой именно хидер нужен? Где в документации сказано, что включите именно его? По ссылке я был еще до Вас. Ничего из моих вопросов нет.
Если Вы не занимались нордиком, то общие советы можно не давать- они просты.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 10 2015, 19:13
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Включать файл "nrf_soc.h". Можно было перейти к функции в нормальной IDE(find references или goto definition) или поискать определение по файлам, например через тоталкоммандер.

П.с. Эта функция не уводит устройство в сон, а только ядро АРМ. Вся остальная периферия продолжит работать и процессор проснётся по первому прерыванию.
Фактически в функции выполняется одна команда __WFE();

Для ухода в глубокий сон есть другие функции, например
sd_power_system_off(); - если используется SofDevice, или просто запись в регистр NRF_POWER->SYSTEMOFF = 1;
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 11 2015, 12:03
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Цитата(Defin @ Aug 10 2015, 22:13) *
Включать файл "nrf_soc.h". Можно было перейти к функции в нормальной IDE(find references или goto definition) или поискать определение по файлам, например через тоталкоммандер.

П.с. Эта функция не уводит устройство в сон, а только ядро АРМ. Вся остальная периферия продолжит работать и процессор проснётся по первому прерыванию.
Фактически в функции выполняется одна команда __WFE();

Для ухода в глубокий сон есть другие функции, например
sd_power_system_off(); - если используется SofDevice, или просто запись в регистр NRF_POWER->SYSTEMOFF = 1;


вот, спасибо. Видно, что человек работает с нордиком.
Там фишка в том, что софтдевайс прошит отдельной прошивкой в др. область памяти. И, похоже, что именно только через эти хидеры происходит обращение к ф-ям софтдевайса. Все ф-ии SD... находятся в софтдевайсе. Обращение к ним через этот хидер.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 11 2015, 14:14
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(Метценгерштейн @ Aug 11 2015, 15:03) *
вот, спасибо. Видно, что человек работает с нордиком.
Там фишка в том, что софтдевайс прошит отдельной прошивкой в др. область памяти. И, похоже, что именно только через эти хидеры происходит обращение к ф-ям софтдевайса. Все ф-ии SD... находятся в софтдевайсе. Обращение к ним через этот хидер.

Пожалуйста.
Функции, которые начинаются с sd_ требуют инициализированный и включенный softdevice, иначе вылет в assert, кроме пары штук, у них есть тело в файле .c.

А так, вся документация и SDK c примерами есть на сайте нордика https://developer.nordicsemi.com/nRF51_SDK
Только нужно смотреть на ревизию чипа, последние версии SDK работают только с 3й ревизией чипа.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 12 2015, 09:29
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



еще вопрос по сну:
загнал его в сон ф-ей
sd_power_system_off();

он теперь на что реагирует? Разбудить его чем теперь?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 12 2015, 10:27
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



может мануалом его стукнуть или другой какой документацией?
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 12 2015, 11:49
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(Golikov A. @ Aug 12 2015, 13:27) *
может мануалом его стукнуть или другой какой документацией?


Вынужден согласиться с товарищем.

Ответ на все вопросы можно найти в документации, даташите и референс-мануале. Всё есть на сайте нордика.
Также в SDK есть примеры реализаций прошивок, например ble_app_hrs.

Касательно sd_power_system_off. Это уход в самый экономичный режим сна, без сохранения ОЗУ.
Проснуться можно по изменению логического уровня на каком-либо входе. Но его нужно предварительно настроить функцией nrf_gpio_cfg_sense_input.
Опять таки, всё можно подсмотреть в примерах.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 12 2015, 12:42
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Спасибо за пояснения. Тут я на пути, как подступиться к этой самой документации. Пока только разбираюсь с системой документации. Буду там смотреть.
Еще раз спасибо за дельные ответы. Теперь уже можно что-то похожее искать как реализовано в примерах.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 18 2015, 09:59
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



не получается все-равно запустить проект
http://developer.nordicsemi.com/nRF51_SDK/...tml/a00075.html

не видит мастер контрол панел, что новое устройство появилось.

Проц предварительно стер весь. Залил проект. Может надо отдельно софтдевайс в память заливать? Хотя нигде про это не сказано.

В проекте адреса флеша с 1600 начинаются. По идее, надо отдельно софтдевайс подгружать.
Не врублюсь, от куда его брать?

Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 18 2015, 13:08
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Софтдевайс отдельно заливается. Иначе даже отладчик(IAR) ругается на неправильный указатель на стэк.
Для S110 hex файл лежит в папке SDK \components\softdevice\s110\hex\
Залить можно просто скопировав в "диск" программатора.

При успешной прошивке, отладочник замигает светодиодом.

Сообщение отредактировал IgorKossak - Aug 18 2015, 16:52
Причина редактирования: бездумное цитирование
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 18 2015, 14:44
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



хрень какая-то:

открыл проект в SDK 8.1.0
C:\...\NORDIC\SDK_8.1.0\examples\ble_peripheral\ble_app_cts_c\pca10028\s110\arm5_no_packs\ble_app_cts_c_s110_pca10028.uvprojx

загрузил софтдевайс из того же SDK через nRF Go Studio, предварительно стер флеш.

Заливаю проект кейлом, старт начинается с main()

все как буд - то нормально.

в main вызывается ф-я
ble_stack_init();
и там пропадает.

разве что-то забыл сделать еще?

уже в вечном цикле ничего не крутится.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 18 2015, 15:14
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(Метценгерштейн @ Aug 18 2015, 17:44) *
Заливаю проект кейлом, старт начинается с main()
все как буд - то нормально.

в main вызывается ф-я
ble_stack_init();
и там пропадает.

разве что-то забыл сделать еще?

уже в вечном цикле ничего не крутится.


А на чем запускаете, на отладочнике nrf51dk? Если нет, то на чем и какая ревизия чипа(можно здесь написать полный текст с чипа, сам посмотрю).
Могу посоветовать пройтись под дебагом и узнать, что возращается в
err_code = sd_ble_enable(&ble_enable_params);
APP_ERROR_CHECK(err_code);

И вообще, на каком именно APP_ERROR_CHECK(err_code) валится, их полно в коде.
Также во время выполнения программы под отладкой, стоит поставить на паузу и посмотреть call stack.

Сам использую IAR, что и как в кейле не скажу, не нравится мне он.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 18 2015, 17:41
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Спасибо. Завтра на работе подробно все посмотрю и скажу. Есть отладочная доска, есть отдельно процы спаянные. Доска PCA0006 вроде как.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01473 секунд с 7
ELECTRONIX ©2004-2016