LINUX.ORG.RU

Сообщения sunjob

 

перенос сетевого приложения Delphi -> Lazarus

Форум — Development

добрый день

пытаюсь перенести приложение

Delphi (неизвестная версия, но, видимо, не сильно старая)
Lazarus - 2.0.12/2.2.0
fpc - соотв. версиям Lazarus

приложение предназначено для тестирования «сетевых технологий» (отправка/прием)

в лоб конвертировать приложение не получилось
menu/Tools/Delpi Conversion

в ручном режиме создал проект, добавил компоненты на форму, перетащил код:
1я часть/сервер работает (слушает порт, принимает запросы, выводит в TMemo)
2я часть/клиент уперлась в компонент THTTPClient. пытался заменить на «аналогичные», получал исключение

THTTPClient
-->
FPHTTPClient / use fphttpclient
IdHTTP       / Indy-10.6.2.0

идеи, пендили, помидоры... приветствуются :о)
спасибо

зы !!! (приложение не мое) !!! , и в сет. технологиях как ... короче, тема не мая :о)

mClientLog            : TMemo;

procedure TForm1.btnGetClick(Sender: TObject);
var
  SS: TStringStream;
  HttpClient: THTTPClient;
begin
  SS := TStringStream.Create('', TEncoding.UTF8);
  try
    HttpClient := THTTPClient.Create();
    try
      HttpClient.Get(teURL.Text, SS);
      mClientLog.Lines.Add(SS.DataString);
    finally
      HttpClient.Free;
    end;
  finally
    SS.Free;
  end;
end;

function TForm1.PostRequest(const AURL: String; ASource: TStrings): TStream;
var
  SS: TStringStream;
  HttpClient: THTTPClient;
begin
  Result := TStringStream.Create('', TEncoding.UTF8);
  try
    HttpClient := THTTPClient.Create();
    try
      HttpClient.Post(AURL, ASource, Result);
    finally
      HttpClient.Free;
    end;
  except
    Result.Free;
    raise;
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//
// пытался заменить на TFPHTTPClient - вызывает исключение
// -> exception - Invalid Protocol: ""
//
////////////////////////////////////////////////////////////////////////////////

function TForm1.PostRequest(const AURL: String; ASource: TStrings): TStream;
var
  SS: TStringStream;
  HttpClient: TFPHTTPClient; //
begin
Result := TStringStream.Create('', TEncoding.UTF8);
  try
    HttpClient := TFPHTTPClient.Create(nil);
    try
      HttpClient.Post(AURL, ASource); // -> exception - Invalid Protocol: ""
    finally
      HttpClient.Free;
    end;
  except
    Result.Free;
    raise;
  end;
end;

 , , ,

sunjob
()

try-finally - освобождение ресурса (fpc/lazarus)

Форум — Development

добрый день разбираю чужой код, наткнулся на «его непонимание»

begin
var ResponceStream := PostRequest(UrlCtrl + '/api/hello', PostSource);
try
// here void
finally
  ResponceStream.Free;
  end;
end;

задал вопрос автору:

смысл использовать т.о. try-finally? если что-то случаться в процессе отправки запроса, то не произойдет «дефолтного» освобождения рессурса

получил ответ:

наоборот обязательно произойдет освобождение

поясните, почему? :о)

спасибо!

p.s. данный код из Delphi-проекта, переношу на Lazarus

 ,

sunjob
()

stm32, тест, непонятка с чтением состояния пина

Форум — General

добрый день

исходные данные:
stm32vldiscovery
STM32VL-Discovery-template
- No CubeX

набросал тест «помограть» с «кнопкой»
- синий св.диод моргает ~ 1Гц
- зеленый св.диод - меняет состояние по нажатию на кнопку

есть непонимание: код чтения пина кнопки «тормозит», точнее
- если код «чтения» заремить - то син.св.диод переключается «правильно», прим. 1Гц
- если код «включить», то син.св.диод переключается прим. в 2 раза медленнее

понятное дело, где-то тупой косяк, швыряйтесь наздоровье. спасибо

main.c

#include "stm32f10x.h"

#define TIMER_CNT 0xFFFFE

#define LED_B_SET (GPIO_SetBits  (GPIOC, GPIO_Pin_8))
#define LED_B_CLR (GPIO_ResetBits(GPIOC, GPIO_Pin_8))
#define LED_G_SET (GPIO_SetBits  (GPIOC, GPIO_Pin_9))
#define LED_G_CLR (GPIO_ResetBits(GPIOC, GPIO_Pin_9))

////////////////////////////////////////////////////////////////////////////////
void RCC_init()
////////////////////////////////////////////////////////////////////////////////
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // enable clocking on Port C
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
}
////////////////////////////////////////////////////////////////////////////////
void Setup(void)
////////////////////////////////////////////////////////////////////////////////
{
GPIO_InitTypeDef GPIOC_init_params;

RCC_init();

//
// 2 LED pin's
//
GPIOC_init_params.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9; // Blue LED PC[8], Green LED PC[9]
GPIOC_init_params.GPIO_Speed = GPIO_Speed_10MHz;
GPIOC_init_params.GPIO_Mode  = GPIO_Mode_Out_PP;  // Push-pull output
GPIO_Init        (GPIOC, &GPIOC_init_params);

//
// Button
//
GPIOC_init_params.GPIO_Pin   = GPIO_Pin_0;        // user button PA0
GPIOC_init_params.GPIO_Speed = GPIO_Speed_10MHz;  // 10-50 по барабану
GPIOC_init_params.GPIO_Mode  = GPIO_Mode_IPD;     // GPIO_Mode_IPD - PD connect GND
GPIO_Init        (GPIOA, &GPIOC_init_params);     //
}
////////////////////////////////////////////////////////////////////////////////
int main(void)
////////////////////////////////////////////////////////////////////////////////
{
int cnt = TIMER_CNT;
int flag_time = 0;
int flag_btn  = 0;

while(1)
  {
  if(!cnt--)
    {
    flag_time = 1;
    cnt       = TIMER_CNT;
    }

  if(flag_time)
    {
    flag_time = 0;

    if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_8))    { LED_B_CLR; } // invert Blue Led
    else                                            { LED_B_SET; }

    if(flag_btn)
      {
      flag_btn = 0;

      if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9))  { LED_G_CLR; } // invert Green Led
      else                                          { LED_G_SET; }
      }   // if(flag_btn)
    }     // if(flag_time)

  //
  // читаем пин-кнопку
  //
  if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0))
    {
    flag_btn = 1;
    } //*/
  }     // while()
}
////////////////////////////////////////////////////////////////////////////////

 

sunjob
()

«break to out» from for/switch

Форум — Development

добрый день.
разбираю код (обычный си-код, без крестов):

1. switch вложен в for
2. выброс реализован «хаком» условия for

все работает, но при «обычном» многостраничном операторе switch-case такой выход «неочевиден».

вопрос: можно-ли как ни-будь красиво/очевидно/локонично реализовать выход из цикла

for(i=1; i<RET; i++)
{
...
switch(i)
  {
  case 10:
  if() 
    {
    ...
    RET = 11; // break to out
    }
  break;
  ...
  case 20:
  if() 
    {
    ...
    RET = 21;
    }
  break;
  ...
  case 30:
  if() 
    {
    ...
    RET = 31;
    }
  break;
  }   // switch()
}     // for()

 , , , ,

sunjob
()

стоковая XFCE, просто поржать... :о)

Галерея — Скриншоты

Добрый день!

Всё стоково/дефолтное (в меру возможностей), версии, пакеты, XFCE не настраивалась (и не планируется).

Решил просто посмотреть, а как оно там поживает, XFCE?!

Кликнул по текстовому файлу (с пробелами в имени) и вот что вышло :о)

пс. всем удачи и хорошего настроения! :о)

- slackware 14.2 x64
- xfce 
... ну и фсе :о)

 , , ,

sunjob
()

ошибка сборки Qt5-приложения

Форум — Development

добрый день

подробности:
сборка на рабочей станции - с ошибкой
сборка на виртуалке - без проблем
прочие не Qt-сборки (на рабочей тачке) без проблем

конфигурации «виртуалка/раб.станция» примерно одинаковые, во вс.случае версии системы/пакетов из «одной бочки», ну и, понятное дело, на раб.тачке постоянно что-то настраивается, устанавливается, затачивается :о)

пробовал (не дало разультатов):
- проверять настройки рабочего окружения (env), ни чего особенного
- export UIC=$QTBIN/uic
- export QT_QMAKE_EXECUTABLE=$QMAKE
- export QMAKESPEC=$QTDIR/mkspecs/linux-g++-$_X # X=32/64
- /etc/ld.so.conf
- «прятал» все прочие версии qt, оставлял в системе только Qt5

- что-то подобное рассмотрено тут URL но, тем не менее, пока не рассматриваю, как «решение», т.к. в vbox-е собирается нормально (да и сборка qt нынче не сахар :о)

собранный в vbox-пакет иногда сваливается при запуске на раб.станции (грешу на запущенную vbox), но, если запустился, то работает нормально

слакбилд свой, но, надеюсь, он не имеет отношения к ошибке :о)

сделал выхлоп с обоих систем, нашел различие в командах (на ошибочной цели), вывод ниже

перепахивать/заново переустанавливать/перенастраивать рабочую станцию не буду, нет времени

пожалуйста, предлагаю просто высказываться, что думаете, где может быть зарыта собака, можно просто побалагурить на околотему, пошвыряться помидорами :о)

спасибо

нормальная сборка / from vbox - work code's

g++ -c -m64 -pipe -std=c++11 -O2 -fPIC -O2 -O2 -fPIC -std=gnu++11 -Wall -W -D_REENTRANT
-fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I
-isystem /usr/include/qt5
-isystem /usr/include/qt5/QtWidgets
-isystem /usr/include/qt5/QtGui
-isystem /usr/include/qt5/QtNetwork
-isystem /usr/include/qt5/QtCore -I.moc
-isystem /usr/include/libdrm -I.ui -I/usr/lib64/qt5/mkspecs/linux-g++-64 -o
.obj/moc_qsynthPaletteForm.o .moc/moc_qsynthPaletteForm.cpp

сборка с ошибкой / на рабочей тачке

g++ -c -m64 -pipe -std=c++11 -O2 -fPIC -O2 -O2 -fPIC -std=gnu++11 -Wall -W -D_REENTRANT
-fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I.
-I/usr/lib64/qt5/include
-I/usr/lib64/qt5/include/QtWidgets
-I/usr/lib64/qt5/include/QtGui
-I/usr/lib64/qt5/include/QtNetwork
-I/usr/lib64/qt5/include/QtCore -I.moc
-isystem /usr/include/libdrm -I.ui -I/usr/lib64/qt5/mkspecs/linux-g++-64 -o
.obj/moc_qsynthPaletteForm.o .moc/moc_qsynthPaletteForm.cpp

.moc/moc_qsynthPaletteForm.cpp:263:3: error: cannot convert ‘const QMetaObject* const*’ to ‘const
QMetaObject::SuperData*’ in initialization

 } };
   ^

исходные данные

- slackware  14.2 x64
- vbox       5.2.36
- qt5        5.12.8
- qt5_webkit 5.9.1
- qsynth     0.9.4

 ,

sunjob
()

GeForce GTS250 в современном Linux-e

Форум — Admin

добре день

Нужна конфигурация «набора» с запущенной в.картой/GTS250 на современном линуксе. Ау, есть такие счастливые обладатели «сего»?!

- дистр/версия
- ядро/патчи
- nv-драйвер/патчи
- в.карта (если не GTS250, то близкая)

Было несколько попыток запустить в.карту на sl14.2+, но из-за нерешенных проблем (с в.картой/дровами) откатывался назад.

В инете «подобная тема» обсуждается, на «слакбилде» есть скрипты, есть некоторая движуха в этом направлении.

Надеюсь, смысл топика понятен?! Cпасибо за ссылки, идеи, пендили, помидоры :о)

цель

- slackware 14.2+ / 15.x
- kernel 4.x / х64 (можно 5.х)
- geforce gts250

...

### материалы для интересующихся ###

arch
arch_nvidia-340xx

First Submitted: 2019-06-07 10:29
Last Updated   : 2021-06-06 02:31
тут раньше было только 3й патча, сейчас добавили еще парочку :o)

nvidia
nv_legacy нвидимо-обещалки :о)

http://slackbuilds.org
340-drv 340-krn firmware

мои «отдельные» выкусы

sl14.2+ & nvidia-340.108

dmesg --> error

[   60.274005] gdk-pixbuf-quer[1324]: segfault at c4274466 ip 00000000c4274466 sp 00000000ffb88aec
error 14 in libnvidia-glcore.so.340.108[f40fa000+18ea000]

/usr/lib64/libnvidia-glcore.so.340.108 - pkg
nvidia_340.108_drv-x-x86_64-sl14.2+

попробовал другие ядра
5.4.44  - ERR
5.4.23  - ERR
5.4.22  - ERR
4.4.208 - ERR

 , , ,

sunjob
()

скриптинг, подготовка фоток, фон, формат, бордюра итд...

Форум — Desktop

дорбый день!

есть кучка фоток с разными соотношениями сторон
нужно извернуться скриптами, не изменяя РАЗМЕР ИСХОДНЫХ ИЗОБРАЖЕНИЙ «обардюрить» фотки, залить фон

подробно:
- сделать фон определенного: цвета*, соотношения*, бордюр (размер)*
- позиция: центр/влево/вправо/верх/низ*
- размер бордюра относительный* (что-бы выглядел одинаково на всех фотках, при ресайзе к одному разрешению)
(*) - настраиваемые параметры

имеется в виду, что размеры всех фоток остануться «прежними», с учетом бардюры, но при просмотре и соотв. «масштабировании/ресайзе/fit image to view» - будет именно этот ресайз
...

можно сделать в фоторедакторе, спец.софте(уже*), но, все-же хотелось-бы скриптами.
(*)
pHatch - плагин Scale, Canvas, Border, один минус - ресайз фото
xnconvert - аналогично...

возможно, уже есть подобные решения, можно, тыкайте носом :о)
...

спасибо
tag: linux, bash, perl, script, graphicsmagick, imagemagick

 , , ,

sunjob
()

Midnight Commander, F2-menu, определение каталога «второй» панели

Форум — Development

добрый день!

по F2-меню, текущий каталог определен как

%d  The current working directory

есть ли возможность определить «альтернативный каталог во второй панели»?!

есть возможность там-же, в F2/menu отслеживать нажатие на упр. клавиши (alt, shift, ctrl)?

давно вынашиваю идею сделать меню-архивирование во вторую панель

спасибо

 

sunjob
()

Препроцессор, печать значения

Форум — Development

добрый день!

непонятно, почему печать выводит «исходную формулу» а не «конечное число» по идее, препроцессор должен подставлять конечный результат (ну или я ошибаюсь)

спасибо за пендили и подсказки :о)

#define __VAL(x) #x
#define   VAL(x) __VAL(x)

#define OCR_CNT (((F_CPU)/(TIMER_FREQ_HZ*TIMER_DIV))-1)
#pragma message "OCR_CNT = " VAL(OCR_CNT)
-->
timer2.h:31:9: note: #pragma message: OCR_CNT = (((18000000UL)/(100*1024))-1)
#pragma message "OCR_CNT = " VAL(OCR_CNT)

tag: avr,avr-gcc,preprocessor

###!!! UPDATE !!!###

как нужно извернуться, что-бы вся подобная математика «считалась» и в код подставлялись уже готовые константы?!

т.е. без извратов типа «внешние скрипты», awk/bc etc...

спасибо :о)

 , ,

sunjob
()

V-USB доработка интерфейса

Форум — Development

добрый день

проект v-usb

выкус из спецификации/инета/форумов:
- реализация не полностью соответствует стандарту
- работа на 100% не гарантируется
- питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в «притирочку» ...) :o)

у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы.

https://img.radiokot.ru/files/28650/2g6l5osisx.png
https://img.radiokot.ru/files/28650/2g6l5o7m5h.png
https://img.radiokot.ru/files/28650/2g6l5ngk3q.png

как следствие стабильно может работать только при «определенных условиях»

в планах поработать с библиотекой.
для начало решил «набросать» альтернативный вариант. (так сказать, попытаться закрыть все возможные дыры в подключении)
https://img.radiokot.ru/files/28650/2g7asnvkb7.png

достаем помидоры, баркова, мысли, высказываемся (заранее благодарен)

tag: v-usb, usb, avr, avr-gcc, atmega328p, linux, mac-osx

NO atmega32u4, NO arduino pro micro etc...

###!!! UPDATE !!!###

нашел в распайке cypress usb module
как думаем, в данном случае может пригодиться?!

//
// CY7C63723C usb module 
//

Feb 28 03:59:32 book kernel: [409827.421055] usb 2-2: new low-speed USB device number 6 using uhci_hcd
Feb 28 03:59:32 book kernel: [409827.586124] usb 2-2: New USB device found, idVendor=0665, idProduct=5161
Feb 28 03:59:32 book kernel: [409827.586135] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 28 03:59:32 book kernel: [409827.586143] usb 2-2: Product: USB to Serial
Feb 28 03:59:32 book kernel: [409827.586149] usb 2-2: Manufacturer: Cypress Semiconductor
Feb 28 03:59:32 book kernel: [409827.628281] hid-generic 0003:0665:5161.0002: hiddev0,hidraw0: USB HID v1.00 Device [Cypress Semiconductor USB to Serial] on usb-0000:00:1d.0-2/input0
Feb 28 03:59:32 book mtp-probe: checking bus 2, device 6: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2"
Feb 28 03:59:32 book mtp-probe: bus: 2, device: 6 was not an MTP device

 , , ,

sunjob
()

geany небольшая проблема с запуском по F5 / github.com - есть тут кто?

Форум — Development

добрый день

есть у кого аккаунт на гитхабе? если не сложно, заведите «тикет» на
geany

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

надеюсь, сообществу пригодиться

спасибо

- slackware 12.2
- geany ver. 0.21, 1.22, 1.23, 1.24
- fpc 

###!!! УТОЧНЕНИЕ !!!###

данный косяк проявляется именно с pascal-ем, пустой «проект», вообще «без ничего» ...

 , , ,

sunjob
()

makefile и озвучка, в зов-ти от результата

Форум — Development

добрый день!

нужно озвучить работу makefile, в зов-ти от успеха/ошибки
makefile - в общем-то стандартный (не без надстроек :о)
рассмотрим, самый простой случай

make all
makefile
all:   build
build: elf hex epp lss sym

elf: 		$(TARGET).elf
hex: 		$(TARGET).hex
eep: 		$(TARGET).eep
lss: 		$(TARGET).lss
sym: 		$(TARGET).sym
нужно, что-бы при успехе/ошибке, !!! внутри makefile !!! вызывались команды, соответственно:
${BEEP_OK}  # OK
${BEEP_ERR} # ERR  
+
slackware 12.2/14.2 x32/64
avr-gcc/xc8
bash

спасибо

p.s. все с набегу пока мысля не влетела в голову...

уточняю - надо все упаковать в makefile

 , ,

sunjob
()

установка qt-5.12.10 & qtcreator без аккаунта

Форум — Development

добрый день

подскажите как установить сабж, не имея аккаунта

qt-opensource-linux-x64-5.12.10.run
qt-creator-opensource-linux-x86_64-4.12.4.run

ну... или, если кто-то запакует и выложит архив, буду благодарен

спасибо

 ,

sunjob
()

а что у нас с linuxquestions.org

Форум — General

добрый день

пытаюсь достучаться до «сабжика», а в итоге получаю postimg PIC

по ссылке видится адрес

https://www.cloudflare.com/5xx-error-landing/

 ,

sunjob
()

slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Форум — Admin

добрый день

на счет первого

/etc/sysctl.conf
все понятно (по умолчанию давно и все работает без проблем)

на счет второго

/etc/sysctl.d/*.conf
не очень :o)

всегда использовал первый вариант, но тут наткнулся на ноутбуке с slackware-14.2 на второго перца, нужно было немного подрулить систему

ладно, думаю, коли есть каталог, значит есть и рулежка, вставил пару правил, перегрузился, и... упс, правила не сработали...

полез смотреть в init-скрипты, а там и нет такого, только стандартный первый вариант
в инете только «сумбурное» высказвание алиена о том, что если создать «первый вариант» все будет пучком :о)

на слакбилд-орге есть упомнинание об втором варианте, но в единственном экземпляре, возм. плохо искал
slackbuild.org/ccl

(see /etc/sysctl.d/ccl.conf)

что скажут боевые перцы по поводу присутствия второго непрошенного гостя? у меня он присутствует везде в slackware-14.2

p.s.
думаю, даже, если предложить патрику патчи на init-скрипты для обработки второго перца, то он откажется :o)

slackware 12.2 / тут, точно нет "второго перца"
slackware 14.2 / а тут он есть :о)

###!!! UPDATE !!!###

сабака была зарыта в «старой команде» init-файла (странное дело, но там отсутствовал «нужный» ключ)

/etc/rc.d/rc.S

if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then
#/sbin/sysctl -e -p /etc/sysctl.conf ###!!! -->
/sbin/sysctl -e -p /etc/sysctl.conf --system
fi

Всем СПАСИБО, Всех с НОВЫМ ГОДОМ!

 , ,

sunjob
()

MPlав-Х, ихние копмиляторы, лицензии, новогодний палко-тык :о)

Форум — Desktop

короткая «ново-негодняя» история :о)

решил таки я, с дуру, очередной раз попытать счастье, установить «последнюю» лабу на свою «вторую» ось - sl14.2 x64
ну чего? поржом-потыкаем?!

пытаемся скачать с оффсайта - а вот хрен, недокачки и все как-то через ... интернет! выкручиваемся рекурсивным скриптом с wget-ом
может быть это «наш» интернет или «их сакции»?! ну хрен с ними со всеми, едем дальше :о)

устанавливаем в vbox, смотрим... понятное дело, эта «снегурочка», как обычно «навалила подарков» где и «ожидалось»:

/usr/local/lib/@MICROCHIP-TRASH@
- Devices/ <blah-blah-blah>
- JLinkDevices.xml
- libLlvmDisassembler.so*
- libLlvmDisassembler.so.4@
- libjlinkarm.so.6@
- libjlinkpic32.so@
- libjlinkpic32.so.6.82.7*
- libmchpusb-1.0.so@

причем не в стандартный х64-каталог

/usr/local/lib64
а в легаси х32 :o)

ладно, хрен с «ней», для «попробовать» корежим, допиливаем, вставляем «чё-нужно куда-нужно»

/etc/ld.so.conf & ldconfig

запускаем... понятное дело, видит только стоко/кастомный тулчайн

avr-gcc        - /usr
avr-gcc-x.x.x. - ~/PREF

устанавливаем то, чЁ умудрился «выдрать» (*) у микрочипа и что было удачно покрашено «зеленкой» (как говориться, уж звиняйте, других зеленых бананьеф не було):

xc8-4.10
(*) - про искреенее жлобство микрочипа - это вообще отдельная история :о)

и надте вам, mplab-5.45 - не желает работать с данной версией, типа, деприкейтед, скачайте 2.20-версию, вот вам ссылка, скачать?
ну ладно, тыкаем-скачиваем, смотрим... а скачалась старая версия xc8-1.36
ладно, думаем :о), может ошибка в сохранении имени, устанавливаем-смотрим - ан нет, как обычно, никаких ошибок! 1.36-версия ...
короч, воротит морду и от этой версии, но уже и не предлагает ничего скачать, нет ссылок для «кликнуть и скачать» :о) (а че?! красивая мина! ... какие писатТтели, такая и мина...)

хрен с ним, скачиваем «мануально-писуальную» 2.20-версию
ставим... пробуем оптимизацию, и, как и ожидалось, получаем «искреннее недоумение» ... (ну т.е. все как у «них там» и задумывалось :о)

...

в процесс «бурного и радостного знакомства» вылезли доп. косяки:
slackware 14.2 x64 & mplab-5.45
при настройках/переключении проектов теряется «настройка глобальных макросов»

-DF_CPU=16000000UL -DBAUD_RATE=57600
ну а куда без них? :о) без макросов, без потерь... ведь скучно же?!
вот только что «оно» тут было, пробежала мыфка, хфостиком мафнула и нет «его» ...

slackware 12.2 x32 & mplab-5.35
вообще не реагирует на смену компилятора, собирает старым, кот. был до этого «выбран»
перегрузка не помогает
после переключения на avr-gcc-компилятор и обратно получилось переключиться на xc-2.20, только он у меня на х32 не работал...(видимо only-х64)
тупняк с переключением на «иной веры компилятор», только через пeрeпистoн: сначало выбираем avr-gcc, потом xc

...

решил посмотреть «исходники» компиялтора, может смогу собрать?! :o) ... прямо ржака заранее ...
опять-таки «с криком, с матом» нашел откуда скачать

скачиваем-распаковываеми и ... хрен нам по всей морде, имеем пустые файлы:

- avr-libc.tar.bz2
- SOURCES.README
как мы думаем? возможно собрать из таких исходников тулчейн?
я не сильно истерю по поводу конспиралогии и охреневании чипромика?! ... пародон, микрочипа?! :о)

...

если mplав-х еще можно как-то без истерики найти и скачать с «родного» сайта, то со «всем остальным», все уж сильно хитроумно, с набегу можно и голову сломать, и руки порезать и ... стекляшку разбить

тыц_сорс
тыц_сталлятор
тыц_сталлятор

...

ну и самое «сухое» из всего этого :о)
протестировал «типа оптимизацию» этих «хваленых» копмиляторАф!
смотрим :о)

------------------------------------------------
оптимизация / размер *.hex-файла
------------------------------------------------
gcc1 - avr-gcc-3.6.2 свой Makefile
gcc2 - avr-gcc-3.6.2 сборка в mplabx
xc8  - xc8-2.10      сборка в mplabx
------------------------------------------------
opt  |  gcc1   |  gcc2   | xc8
------------------------------------------------
s    |  5,496  |  5,696  | 6,357
g    |  5,508  |         |
fast |  5,504  |         |
0    |  5,966  |  8,433  | 9,188
1    |  5,508  |  5,721  | 6,386
2    |  5,500  |  5,700  | 6,361
3    |  5,504  |  5,717  | 6,365
------------------------------------------------

!!! UPDATE !!!
нашел подходящюю зеленку для сх8-2.20

slackware 14.2 x64
МРlаbx 5.45

avr-gcc toolchain
- avr_gcc-4.9.2-x86_64-sl14.2
- avr_binutils-2.25-x86_64-sl14.2
- avr_gdb-7.8.1-x86_64-sl14.2
- avr_libc-1.8.1-x86_64-sl14.2
------------------------------------------------
gcc  - avr-gcc  сборка в mplabx
xc8  - xc8-2.20 сборка в mplabx
------------------------------------------------
opt  |  gcc    |  xc8    |
------------------------------------------------
0    |  8,024  |  8,971  |
1    |  5,402  |  6,169  |
2    |  5,381  |  6,144  |
3    |  5,385  |  6,148  |
s    |  5,377  |  6,140  |
------------------------------------------------

тест в «разрезе» разных avr-gcc-toolchains в сравнении с хс8-2.20

------------------------------------------------
optimisation 2
------------------------------------------------
gcc  - avr-gcc  сборка в mplabx
xc8  - xc8-2.20 сборка в mplabx
------------------------------------------------
    avr-gcc   | xc8 2.20 |
------------------------------------------------
3.6.2 - 5,496 |   6,144  |
7.3.0 - 5,361 |          |
9.2.0 - 5,336 |          |
------------------------------------------------

одним словом хс проигрывает avr-gcc - по всем размерам :о)

...

p.s.
ну что?! кидайте помидоры, чепчики, гульфики,
можно просто мысли по поводу «всего этого счастья» :о)

с новым годом!

к стати, иногда что-то происходит (может быть новый год?) и потерянный экран отладки uart-порта в режиме симуляции иногда проявляется (иногда опять теряется, но я его тут поймал за пятку, и задокументалировал, правда, сам выхлоп из порта не работает, но хоть что-то) :о)

DEBUG_UART

 , ,

sunjob
()

slackware 14.2 alsa, проблема звука, монопольный захват

Форум — Desktop

добрый день

обновил slackware до 14.2 версии (на старом нубуке), получил «проблему монопольного доступа», на фоне прочих дополнителных (*) глюков звуковой системы (ни «тех» ни «других» не было в прошлых версиях слаки)

(*) - прочие глюки, типа «дам не дам, дам не вам и хрен вам ...» итд, причем тут-же, или, чуть позже - «а нате...» непонятно с чего вдруг?! ни чего не делал, а звук появился...

особенно «глюки» заметны при работе пакета sox/play (используемый для озвучки), после перегрузки «сигналка» может заработать сразу, может попозже, может от балды... как, впрочем, и звук в других приложениях.

причем именно эти «прочие косяки» я заметил уже давно, сразу, как только начал тестировать slackware-14.2 на виртуалке. все было не до «звука», ну а тут «поднакопилось»...

пояснения: - обновление было сделано поверх рабочей системы, sl14.1->sl14.2, конфиги в основном «старые» (за исключением заточки работы звука под alsa; в инете полно рецептов втч и для слаки :о)
- система настроена на работу alsa, без pulse
- pulse-демон в процессах отсутствует (собственно, и не должен :о)
- трабла проявляется в реальном захвате звука первым запущенным «приложением», типа, кто перый, того и рупор. если работает плеер, то запущенный браузер/ролик - уже без звука, достаточно закрыть плеер, «обновить страницу» - звук начинает работать. и, аналогично, наоборот...

- в slackware 14.1 точно ни каких проблем со звуком не было вообще, в фоне неделями болтались плееры, бразеры, и все кому не лень... звук работал должным образом
- во время всевозможных отработок на vbox так-же проявляются как минимум прочие проблемы звука (за монополный доступ ни чего не скажу, не тестил, не до этого было, а вот «сам по себе» звук реально тупит, понятное дело, настройка alse w/o pulse)

- иногда проскакивает «где-то» тупое сообщение об ошибке, бла-бла-бла, обновите alsa... ну ладно, просит, сделали

alsa_lib     1.2.4
alsa_oss     1.1.8
alsa_plugins 1.2.2
alsa_utils   1.2.4
--> без изменений, но «прочие глюки» еще больше заметны, звук может не сразу заработать, не понятно какие пендили помогают лучше, какие хуже (reboot, reset x, перегрузка приложения, страницы... х.з, уже достало выяснять)
- в логах ничего подозрительного

audacious, если запустить после «бразузера с просмотром ролика», то получаем «очевидные» сообщения:

message-box: 
ALSA error: snd_pcm_open failed: Device or resource busy

console:
ERROR util.cc:160 [audgui_simple_message]: ALSA error: snd_pcm_open failed: Device or resource busy.

ну... и, соотв. если остановить воспроизведение ролика в браузере и перегрузить audacious, то «он» начинает нормально воспроизводить музыку

notebook ThinkPad Lenovo T60 & blah-blah-bla
slackware 14.2
kernel 4.4.227

p.s. понятное дело, старый нубук, и все такое :о) но звук в 14.2 слаке, в режиме alsa подтупливает и глючит очень замечательно и на вполне современном железе

- asus p8z77 / i7-3770K
- sb-live 5.1
- slackware 14.2 x64 (ядра стоковые)

более подробные тех.данные/выхлопы/конфигурации обязательно будут позже (когда доберусь до железа).

тут можно все это обсудить, побалагурить, сылки/мымсли, пошвыряться помидорами, покорчить друг-другу рожи итд, просто пофилософствовать на эту/сопутствующие тему/мы... короче, не стесняйтесь, высказывайтесь, все, что на душе наболело :о)

и... с новым годом!!! ... без масок, без маек, без плавок (с)

 , ,

sunjob
()

Поиск, только названия тем

Форум — Linux-org-ru

поиск, параметр только темы, но выдает темы, в названии которых нет искомого слова.

IMG

 ,

sunjob
()

avr-gcc makefile, несколько целей для avrdude

Форум — Development

добрый день
имеем

- makefile for avr-gcc
- avrdude
- несколько целей для прошивки (разные программаторы; разные параметры, разные по кол-ву и  настройкам)

задача: настроить так, что бы при вызове цели flash - отрабатывала дефолтная цель для дудки (flash_usbasp,flash_ispmkii,flash_109), которая настраивается в начале makefile

ну, и, соотв., отрабатывали все остальные «конкретные» цели (flash_usbasp,flash_ispmkii,flash_109)

выкрутился рекурсивными вызовом этого-же makefile

FLASH_NAME    ?= usbasp  ###!!! дефолтный программатор
FLASH_DEV     ?= usb

flash_usbasp  : FLASH_NAME    ?= usbasp
flash_usbasp  : FLASH_BRATE    = 115200
flash_usbasp  : FLASH_BCLOCK   = 4
flash_usbasp  : AVRDUDE_FLAG  += -b $(FLASH_BRATE) -B $(FLASH_BCLOCK)
flash_usbasp  : flash_cmd

flash_ispmkii : FLASH_NAME    = avrispmkII
flash_ispmkii : FLASH_BRATE   = 115200
flash_ispmkii : FLASH_BCLOCK  = 4
flash_ispmkii : AVRDUDE_FLAG += -b $(FLASH_BRATE) -B $(FLASH_BCLOCK)
flash_ispmkii : flash_cmd

flash_109     : FLASH_NAME    = avr109
flash_109     : FLASH_BRATE   = 9600
flash_109     : AVRDUDE_FLAG  += -b $(FLASH_BRATE)
flash_109     : flash_cmd

###!!!
# рекурсивынй вызов, в зов-ти от цели
###!!!
flash :
ifeq ($(FLASH_NAME),usbasp)
	$(MAKE)     flash_usbasp
endif
ifeq ($(FLASH_NAME),ispmkii)
	$(MAKE)     flash_ispmkii
endif
ifeq ($(FLASH_NAME),avr109)
	$(MAKE)     flash_avr109
endif

flash_cmd: $(TARGET).hex
	$(AVRDUDE) -c $(FLASH_NAME) -P $(FLASH_DEV) -F $(AVRDUDE_FLAG) -U flash:w:$(OUTDIR)/$<

вопрос: можно-ли красиво обойтись без рекурсии?

!!! UPDATE !!! решение найдено

FLASH_NAME   ?= name1
FLASH_NAME   ?= name2
FLASH_NAME   ?= name3

...

flash_name1  : FLASH_NAME =
flash_name1  : ARG = ...
flash_name1  : flash

flash_name2  : FLASH_NAME =
flash_name2  : ARG = ...
flash_name2  : flash

flash_name3  : FLASH_NAME =
flash_name3  : ARG = ...
flash_name3  : flash

flash : flash_$(FLASH_NAME)
    $(FLASH_CMD)

...

make all         - сборка проекта
make flash       - прошивка дефолтным свистком (настраивается)
make flash_$NAME - прошивка кастомным свистком

 , ,

sunjob
()

RSS подписка на новые темы