Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900 Embedded AT AppNote v1.0
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
ap77
При изучении документа "SIM900 Embedded AT Application Note v1.0" возникло несколько вопросов, если есть опыт подскажите пож-та:

п.2.4 Ресурсы памяти
"..обратите внимание общий размер локальных переменных определенных пользователем не должен превышать 10кбайт.."
Как-то это не вяжется со спецификацией в п.2.1.2 "..ресурсы предоставляемые SIMCom... 1M bytes RAM". И с дальнейшими функциями выделения памяти блоками по 8Кбайт.
Что имеется ввиду? Что в одной локальной процедуре объем переменных не может превышать 10К? Наверно как-то связано с особенностями стека?

п.4.2.2 GetMemory function
".. Максимальный размер памяти который может выделить пользователь 8Кбайт".
Правильно ли я понимаю:
- два блока про 8 Кбайт в одной локальной процедуре выделить не получится?
- если выделил блок 8К, то для остальных переменных имею право использовать не более 2К?
И далее: что означает фраза ".. лучше определять глобальный буфер в памяти, когда размер буфера превышает 100 байт"?
Выделение глобального буфера я должен произвести где? Вне функции fl_entry()?

И по порядку выполнения fl_entry() (п.2.2 Минимальный код встраиваемого приложения).
Правильно ли я понял, что если keepGoinig устанавливаю = FALSE, то мой обработчик перестает обрабатываться до очередного сброса модуля?
Сильно не пинайте, шибко новичок sm.gif
Aurochs
Цитата(ap77 @ Jan 21 2011, 09:29) *
п.2.4 Ресурсы памяти
"..обратите внимание общий размер локальных переменных определенных пользователем не должен превышать 10кбайт.."
Как-то это не вяжется со спецификацией в п.2.1.2 "..ресурсы предоставляемые SIMCom... 1M bytes RAM". И с дальнейшими функциями выделения памяти блоками по 8Кбайт.
Что имеется ввиду? Что в одной локальной процедуре объем переменных не может превышать 10К? Наверно как-то связано с особенностями стека?

Имеется в виду общий размер пользовательского стека, который не должен превышать 10Кб

Цитата(ap77 @ Jan 21 2011, 09:29) *
п.4.2.2 GetMemory function
".. Максимальный размер памяти который может выделить пользователь 8Кбайт".
Правильно ли я понимаю:
- два блока про 8 Кбайт в одной локальной процедуре выделить не получится?
- если выделил блок 8К, то для остальных переменных имею право использовать не более 2К?

Нет. Здесь имеется в виду динамическая память выделяемая в куче (pool) и к стеку она не имеет отношения. И, насколько я понял, ограничение в 8К имеет только фрагмент, выделяемый за один вызов. Т.е. ничего не мешает потом запросить еще 8К. Но это уже будет другой фрагмент...
Цитата(ap77 @ Jan 21 2011, 09:29) *
И далее: что означает фраза ".. лучше определять глобальный буфер в памяти, когда размер буфера превышает 100 байт"?

В смысле выделить буфер статически.
Цитата(ap77 @ Jan 21 2011, 09:29) *
Выделение глобального буфера я должен произвести где? Вне функции fl_entry()?

Да у себя в программе просто написать вне кода процедур, например
Код
char buffer[2000];

ap77
Цитата(Aurochs @ Jan 23 2011, 05:20) *

Все понятно. Спасибо!
Peps
SIM900 EAT - не работает прерывание от внешней ноги.

CODE
ebdat6_08pinConfigureToUnused(FL_PIN_67); // освободили ногу 67 от каких либо функций
ebdat6_08pinConfigureToUnused(FL_PIN_68); // освободили ногу 68 от каких либо функций
// сконфигурировали вывод 68 как внешнее прерывание срабатывающее, если вывод установится в 1
p1=ebdat6_13IntSubscribe(FL_PIN_68,FL_GPIO_TRIG_ON_HIGH_LEVEL, 30);
if(p1==FL_OK)
{
ebdat7_01DebugTrace("***Pin 68 Interrupt Conf OK***");
}
else
{
ebdat7_01DebugTrace("***Pin 68 Interrupt Conf ERROR %x ***", p1);
}


Выдает при инициализации ноги как внешнее прерывание ошибку -0x08 FL_RET_ERR_BAD_STATE.
Прошивка модуля 1137B01SIM900M64_ST_EAT.
Остальные события, от клавиатуры или появления данных от модема появляются и великолепно работают.

И еще. В документе SIM900_Embedded AT Application Note_V1_0.pdf стр. 34 возможно ошибка. Написано тип FlTriggerType , а в библиотеках этот тип описан как FlGpioTriggerType. Думаю господину CADiLO эта информация будет интересна.
CADiLO
А попробуйте - 1137B01V02SIM900M64_ST_EAT

здесь:http://microchip.ua/temp/B01V02.RAR

Инфо о доках внес в багрепорт, отправлю китайцам после 14-го, раньше их на работе не будет.
Peps
Огромное Вам спасибо, сейчас буду пробовать...
Еще одна ошибочка в библиотеках SIM900DevIDE - обработчик прерывания от сигналов UART EVENT_SERIALSTATUS (в мануалке), и EVENT_SERAILSTATUS в fl_appinit.h. Минут 20 угробил, пока тупо не скопировал из fl_appinit.h и только тогда понял в чем разница.
CADiLO
Дело в том что EAT сейчас имеет бета статус и Симком официально ее не поддерживает.
Официальную поддержку обещают после перехода на бесплатный компилятор.
Как только они с празднования своего НГ вернутся постараюсь узнать что нового.
Ну и за нахождение ошибок спасибо - это я обязательно им отпишусь.
Peps
Всегда пожалуйста! ;-) Прошивка новой версии 1137B01V02SIM900M64_ST_EAT не помогла... Буду дальше рыть, и ждать от Вас ответа.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.