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

 
 
> SIM900 Embedded AT AppNote v1.0, вопросы по использованию RAM
ap77
сообщение Jan 21 2011, 07:29
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 18-01-11
Из: Новосибирск
Пользователь №: 62 313



При изучении документа "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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
Aurochs
сообщение Jan 22 2011, 23:20
Сообщение #2


Ортодокс
***

Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775



Цитата(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];

Go to the top of the page
 
+Quote Post
ap77
сообщение Jan 23 2011, 02:55
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 18-01-11
Из: Новосибирск
Пользователь №: 62 313



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

Все понятно. Спасибо!
Go to the top of the page
 
+Quote Post
Peps
сообщение Feb 7 2011, 06:39
Сообщение #4


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

Группа: Участник
Сообщений: 183
Регистрация: 12-01-10
Из: Минск
Пользователь №: 54 745



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 эта информация будет интересна.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Feb 7 2011, 11:34
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



А попробуйте - 1137B01V02SIM900M64_ST_EAT

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

Инфо о доках внес в багрепорт, отправлю китайцам после 14-го, раньше их на работе не будет.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Peps
сообщение Feb 7 2011, 12:04
Сообщение #6


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

Группа: Участник
Сообщений: 183
Регистрация: 12-01-10
Из: Минск
Пользователь №: 54 745



Огромное Вам спасибо, сейчас буду пробовать...
Еще одна ошибочка в библиотеках SIM900DevIDE - обработчик прерывания от сигналов UART EVENT_SERIALSTATUS (в мануалке), и EVENT_SERAILSTATUS в fl_appinit.h. Минут 20 угробил, пока тупо не скопировал из fl_appinit.h и только тогда понял в чем разница.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Feb 7 2011, 12:09
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Дело в том что EAT сейчас имеет бета статус и Симком официально ее не поддерживает.
Официальную поддержку обещают после перехода на бесплатный компилятор.
Как только они с празднования своего НГ вернутся постараюсь узнать что нового.
Ну и за нахождение ошибок спасибо - это я обязательно им отпишусь.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Peps
сообщение Feb 7 2011, 12:54
Сообщение #8


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

Группа: Участник
Сообщений: 183
Регистрация: 12-01-10
Из: Минск
Пользователь №: 54 745



Всегда пожалуйста! ;-) Прошивка новой версии 1137B01V02SIM900M64_ST_EAT не помогла... Буду дальше рыть, и ждать от Вас ответа.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th July 2025 - 06:44
Рейтинг@Mail.ru


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