|
Lpc2000+RTOS+sprintf (Не работает sprintf), Как может операционка повлиять на sprintf ? |
|
|
|
Feb 6 2007, 10:12
|
Частый гость
 
Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905

|
Уважаемые сограждане подскажите пожалуйста, если кто знает  , почему после выхода из sprintf программа переходит на вектор сбоя данных DAbt_Handler. Так происходит только если я пытаюсь вывести в строку переменную float, если int то все нормально. Почему такое может быть? Процессор -LPC2103 Операционка - RTL- Keil Компилятор-RealView Структура программы следующая: Есть три задачи каждая из которых активизируется периодически при помощи конструкции: Код os_itv_set (5); for(;;) { os_itv_wait (); } это значит что каждая задача запускается каждые 50 млс (время для каждой задачи разное). sprintf выполняется только в одной из задач.
Сообщение отредактировал mihask - Feb 6 2007, 10:15
|
|
|
|
|
 |
Ответов
|
Feb 6 2007, 10:19
|
Частый гость
 
Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905

|
Цитата(Alex B._ @ Feb 6 2007, 13:15)  а стек задачи не переполняется случайно? Стек задачи со sprintf я выделил отдeльно от остальных задач Код static U32 stk2[256]; - т.е. 1024 байта, выделял и 2K Не помогает
Сообщение отредактировал mihask - Feb 6 2007, 10:20
|
|
|
|
|
Feb 6 2007, 12:07
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(mihask @ Feb 6 2007, 09:19)  Стек задачи со sprintf я выделил отдeльно от остальных задач Что значит "отдельно"? Точнее как "не отдельно" (если вытесняющие задачи) можно. Цитата Код static U32 stk2[256]; - т.е. 1024 байта, выделял и 2K Не помогает  Осталось убедиться, что размер памяти линкеру указан правильный ( 8K всего у 2103 ) соответствующий данному чипу, иначе "выделить" то можно. А при попытке воспользоваться  .....
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 6 2007, 12:25
|
Частый гость
 
Группа: Validating
Сообщений: 80
Регистрация: 7-12-05
Пользователь №: 11 905

|
Цитата(zltigo @ Feb 6 2007, 15:07)  Цитата(mihask @ Feb 6 2007, 09:19)  Стек задачи со sprintf я выделил отдeльно от остальных задач
Что значит "отдельно"? Точнее как "не отдельно" (если вытесняющие задачи) можно. Цитата Код static U32 stk2[256]; - т.е. 1024 байта, выделял и 2K Не помогает  Осталось убедиться, что размер памяти линкеру указан правильный ( 8K всего у 2103 ) соответствующий данному чипу, иначе "выделить" то можно. А при попытке воспользоваться  ..... В Кейловской операционке стандартным способом (через конфигуратор ОС) можно выделить только одинаковый размер стека для каждой задачи. А через специальную функцию(при создании задачи) можно выделить стек другого размера для отдельной задачи. Размер памяти линкеру выделен правильный, потому что, если превышаем размер стека (при его настройке), то после перелинковки он матерится что 8К превышено. А вы использовали sprintf c float c какой нибудь осью ? Никаких там хитростей нет , кроме стека?
|
|
|
|
|
Feb 6 2007, 12:33
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(mihask @ Feb 6 2007, 11:25)  А вы использовали sprintf c float c какой нибудь осью ? Никаких там хитростей нет , кроме стека? Естественно использовал. Да какие там хитрости  - не хитрее memcpy(). Цитата В Кейловской операционке стандартным способом (через конфигуратор ОС) можно выделить Я бы назвал способ через какой-либо "конфигуратор" извращенным, а не стандарнтым
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
mihask Lpc2000+RTOS+sprintf (Не работает sprintf) Feb 6 2007, 10:12  mihask Добавлю еще, что если я отключаю одну из задач (пр... Feb 6 2007, 11:30 Alex03 Цитата(mihask @ Feb 6 2007, 12:12) ...поч... Feb 6 2007, 12:41 zltigo Цитата(Alex03 @ Feb 6 2007, 11:41) А Вы у... Feb 6 2007, 13:01 mihask Цитата(Alex03 @ Feb 6 2007, 15:41) Цитата... Feb 6 2007, 13:11 AlexandrY Хе..Хе, это грабли библиотеки RealView.
Помогает т... Feb 6 2007, 13:23 AlexandrY Т.е. еще уточнение. Сказанное относится к случаю е... Feb 6 2007, 13:32 zltigo Цитата(AlexandrY @ Feb 6 2007, 12:23) Хе.... Feb 6 2007, 13:40  AlexandrY Компилер с самого начала придерживается выравниван... Feb 6 2007, 15:29   zltigo Цитата(AlexandrY @ Feb 6 2007, 14:29) Ясн... Feb 6 2007, 15:48 mihask Цитата(AlexandrY @ Feb 6 2007, 16:23) Хе.... Feb 6 2007, 13:50 Alex03 Цитата(zltigo @ Feb 6 2007, 15:01) Тем не... Feb 6 2007, 13:23
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|