|
|
  |
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
Jan 24 2012, 04:48
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Так вроде как fixed-point арифметика уже имеется. Я точно с чем-то подобным сталкивался с год назад или даже ранее. Глянул: из хелпа, идущего с avr-gcc 4.5.1 А патч для зараждающейся поддержки Fixed-Point в avr-gcc идёт ИМХО со времён avr-gcc 4.4.3, возможно и ещё раньше. CODE 6.14 Fixed-Point Types
As an extension, the GNU C compiler supports fixed-point types as defined in the N1169 draft of ISO/IEC DTR 18037. Support for fixed-point types in GCC will evolve as the draft technical report changes. Calling conventions for any target might also change. Not all targets support fixed-point types.
The fixed-point types are short _Fract, _Fract, long _Fract, long long _Fract, unsigned short _Fract, unsigned _Fract, unsigned long _Fract, unsigned long long _Fract, _Sat short _Fract, _Sat _Fract, _Sat long _Fract, _Sat long long _Fract, _Sat unsigned short _Fract, _Sat unsigned _Fract, _Sat unsigned long _Fract, _Sat unsigned long long _Fract, short _Accum, _Accum, long _Accum, long long _Accum, unsigned short _Accum, unsigned _Accum, unsigned long _Accum, unsigned long long _Accum, _Sat short _Accum, _Sat _Accum, _Sat long _Accum, _Sat long long _Accum, _Sat unsigned short _Accum, _Sat unsigned _Accum, _Sat unsigned long _Accum, _Sat unsigned long long _Accum.
Fixed-point data values contain fractional and optional integral parts. The format of fixed-point data varies and depends on the target machine.
Support for fixed-point types includes:
prefix and postfix increment and decrement operators (++, --) unary arithmetic operators (+, -, !) binary arithmetic operators (+, -, *, /) binary shift operators (<<, >>) relational operators (<, <=, >=, >) equality operators (==, !=) assignment operators (+=, -=, *=, /=, <<=, >>=) conversions to and from integer, floating-point, or fixed-point types Use a suffix in a fixed-point literal constant:
‘hr’ or ‘HR’ for short _Fract and _Sat short _Fract ‘r’ or ‘R’ for _Fract and _Sat _Fract ‘lr’ or ‘LR’ for long _Fract and _Sat long _Fract ‘llr’ or ‘LLR’ for long long _Fract and _Sat long long _Fract ‘uhr’ or ‘UHR’ for unsigned short _Fract and _Sat unsigned short _Fract ‘ur’ or ‘UR’ for unsigned _Fract and _Sat unsigned _Fract ‘ulr’ or ‘ULR’ for unsigned long _Fract and _Sat unsigned long _Fract ‘ullr’ or ‘ULLR’ for unsigned long long _Fract and _Sat unsigned long long _Fract ‘hk’ or ‘HK’ for short _Accum and _Sat short _Accum ‘k’ or ‘K’ for _Accum and _Sat _Accum ‘lk’ or ‘LK’ for long _Accum and _Sat long _Accum ‘llk’ or ‘LLK’ for long long _Accum and _Sat long long _Accum ‘uhk’ or ‘UHK’ for unsigned short _Accum and _Sat unsigned short _Accum ‘uk’ or ‘UK’ for unsigned _Accum and _Sat unsigned _Accum ‘ulk’ or ‘ULK’ for unsigned long _Accum and _Sat unsigned long _Accum ‘ullk’ or ‘ULLK’ for unsigned long long _Accum and _Sat unsigned long long _Accum GCC support of fixed-point types as specified by the draft technical report is incomplete:
Pragmas to control overflow and rounding behaviors are not implemented. Fixed-point types are supported by the DWARF2 debug information format. Я не пробовал это использовать. Лишь глазом зацепился. Про сравнения... Я только по функциональным возможностям сравнил - не более.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 17 2012, 20:25
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
То ли лыжи не едут... Распаковал линуксовый openocd в папку kgp, где у меня всё остальное, с сохранением структуры папок (bin, lib, share). Пытаюсь запустить: Код openocd -f interface/stlink-v1.cfg ругается: Код Can't find interface/stlink-v1.cfg (kgp/bin - в PATH). Ну, думаю, сейчас победю. Ставлю openocd из репозитория, и перезаписываю все файлы свежаком. Всё равно не находит! Что я делаю не так? (И как правильно?)
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Feb 18 2012, 10:27
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Ага, кажется понял, в чём дело. Пути поиска жёстко зашиты: Код Debug: 12 1 configuration.c:45 add_script_search_dir(): adding /home/anton/.openocd Debug: 13 1 configuration.c:45 add_script_search_dir(): adding /opt/arm-kgp-eabi/share/openocd/site Debug: 14 1 configuration.c:45 add_script_search_dir(): adding /opt/arm-kgp-eabi/share/openocd/scripts Перенёс скрипты в ~/.openocd, вроде полегчало, скрипты находятся. Но работать -- пока не работает. Выдаёт попеременно то просто Код Error: open failed , то Код libusb couldn't open USB device /dev/bus/usb/005/005: Permission denied. libusb requires write access to USB device nodes. Error: open failed Правила для openocd в /etc/udev/rules.d я скопировал. Пока застрял
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Mar 21 2012, 17:27
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(ReAl @ Jan 22 2012, 21:07)  Там обещают __pgm, __pgmx и -mstrict-X (да и -maccumulate-args неплохо). что-то я не понял: обещают или уже сделано? пробую сам - не выходит каменный цветок  или я чего-то не понимаю?
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
  |
7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0
|
|
|