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

 
 
> sprintf
sergey sva
сообщение Apr 15 2010, 17:37
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Где можно посмотреть исходник sprintf, библиотечная работает, только с целыми значениями, а если нужно %f зависает все ,где искать причину не знаю?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Apr 17 2010, 11:14
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



У avr-gcc, насколько я помню, поначалу тоже с malloc был. На стеке выделялся только буфер для преобразований целых чисел, а для плавающих форматов буфер длиннее и его по malloc выделяли.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 16 2010, 00:04
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(ReAl @ Apr 17 2010, 14:14) *
На стеке выделялся только буфер для преобразований целых чисел, а для плавающих форматов буфер длиннее и его по malloc выделяли.

Вначале писали извращенцы, асболютно не представляющие что такое МК. Потом за дело взялись нормальные люди и сделали правильно.
Я все никак не могу взять в толк почему некоторые делают маленький стек, и большой heap, а потом в коде начинают появляться воистину дебильные и тормозные конструции типа:

Код
foo()
{
    U8 *buf = (U8 *)malloc(256);
    /*
        malloc при поиске подходящего блока проходит километровую цепочку heap descriptor'ов.
        процесс прохода дескрипторов необходимо защитить локом либо другим sync примитивом,
        для обеспечения атомарности доступа,
        а значит прерывания могут быть запрещены на ОЧЕНЬ ДОЛГО.
    */
    ...



    free( buf );
    /*
        проходит через процесс объединения текущего блока со свободными,
        хоть этот процесс и быстрее чем выделение,
        но всяко медленнее чем одна команда "SUB SP, 256"
      
        в этом процессе требуется обеспечить атомарность при обращении к heap дескрипторам,
        а значит прерывания и здесь могут быть запрещены на относительно длительное время
    */
}


что мешает млин heap уменьшить на 256 байт, а стек на те же 256 байт увеличить? Чтобы было просто

Код
foo()
{
    buf[ 256 ];  // память выделена мгновенно

    // и освобождена автоматически
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergey sva   sprintf   Apr 15 2010, 17:37
- - Dog Pawlowa   Цитата(sergey sva @ Apr 15 2010, 20:52) Г...   Apr 15 2010, 18:04
- - baralgin   Или нехватка стэка.   Apr 15 2010, 18:05
- - sergey sva   >ЧТо за компилятор, что за среда, какие настрой...   Apr 15 2010, 18:31
- - sergey sva   Вот что говорит на -target-help , может нужно еще ...   Apr 15 2010, 21:01
|- - Аматер   У меня тоже висло все из за printf %f в keil. Пом...   Apr 16 2010, 06:08
- - MrYuran   printf() обычно имеет несколько "градаций...   Apr 16 2010, 06:32
- - sergey sva   ЦитатаХип и стек - вообще-то не одно и то же, скор...   Apr 16 2010, 08:11
|- - AHTOXA   Цитата(sergey sva @ Apr 16 2010, 14:26) К...   Apr 16 2010, 12:55
|- - Сергей Борщ   Цитата(sergey sva @ Apr 16 2010, 10:26) h...   Apr 16 2010, 13:04
|- - AHTOXA   Цитата(Сергей Борщ @ Apr 16 2010, 19:19) ...   Apr 16 2010, 15:38
- - sergeeff   Навскидку - все правильно. Совет - на IRQ_STACK_SI...   Apr 16 2010, 08:28
- - sergey sva   ЦитатаНавскидку - все правильно. Совет - на IRQ_ST...   Apr 16 2010, 08:51
|- - AHTOXA   А у вас вообще malloc() работает?   Apr 16 2010, 12:05
- - sergey sva   Странно получается не работает, а sprintf с целыми...   Apr 16 2010, 12:51
- - sonycman   В кейле для кортексов юзаю vsprintf постоянно. Пол...   Apr 16 2010, 13:16
|- - Сергей Борщ   Цитата(sonycman @ Apr 16 2010, 15:31) В к...   Apr 16 2010, 13:39
- - smac   Цитата(sergey sva @ Apr 15 2010, 21:52) Г...   Apr 16 2010, 19:54
|- - rezident   Цитата(defunct @ Jun 16 2010, 06:04) Я вс...   Jun 16 2010, 00:54
|- - defunct   Цитата(rezident @ Jun 16 2010, 03:54) Нап...   Jun 16 2010, 03:12
|- - demiurg_spb   Цитата(defunct @ Jun 16 2010, 07:12) А ...   Jun 16 2010, 09:18
- - Сергей Борщ   Цитата(sergey sva @ Apr 15 2010, 19:52) Г...   Apr 17 2010, 15:02
- - sergey sva   Хотел попробовать kgp но что то он у меня не идет...   Apr 17 2010, 15:39
|- - smac   Цитата(sergey sva @ Apr 17 2010, 19:54) И...   Apr 17 2010, 17:14
|- - AHTOXA   Цитата(sergey sva @ Apr 17 2010, 21:54) Х...   Apr 17 2010, 17:46
- - sergeeff   Я чего-то вообще не пойму в сыр-бор. Исходников sp...   Apr 17 2010, 22:39
- - sergey sva   >Хм. Из-за одной небольшой проблемы сразу менят...   Apr 18 2010, 15:09
|- - sergeeff   Цитата(sergey sva @ Apr 18 2010, 18:24) Н...   Apr 18 2010, 16:04
- - sergey sva   Спасибо, теперь работает float и строки и целые ч...   Apr 18 2010, 20:27
|- - MrYuran   Цитата(sergey sva @ Apr 19 2010, 00:27) С...   Jun 17 2010, 05:38
- - _Макс   Как указать вывод float с предшествующими пробелам...   Jun 15 2010, 22:41
- - rezident   defunct, было бы хорошо, если все было бы так прос...   Jun 16 2010, 19:54
|- - defunct   Цитата(rezident @ Jun 16 2010, 22:54) def...   Jun 16 2010, 23:19
- - skripach   IAR float32 без проблем.   Jun 17 2010, 07:01
- - fox1   Добрый день ! Кто нибудь использует sprintf с ...   Jul 7 2010, 12:00
|- - demiurg_spb   Включите в makefile поддержку расширенной printf. ...   Jul 7 2010, 14:24
|- - fox1   Цитата(demiurg_spb @ Jul 7 2010, 18:24) В...   Jul 8 2010, 04:49
|- - demiurg_spb   Понятно. Тогда поищите по форуму. Недавно тут кто-...   Jul 8 2010, 08:47
|- - Wano   Малость не в тему. Смотрю человек работает с текст...   Jul 9 2010, 08:32
- - fox1   Ну вобщем ... взломался printf с float от IARа ......   Jul 22 2010, 12:13
- - koluna   Столкнулся с определенными проблемами, используя ...   Jan 2 2014, 07:53


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

 


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


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