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

 
 
> GCC ARM - не имплементируются функции SIN, COS, arm-none-eabi
__inline__
сообщение Oct 1 2017, 07:34
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Здравствуйте.

Скачал и поставил, затем ребутнул (для переменных окружения) GCC-тулчейн: gcc-arm-none-eabi-6-2017-q2-update-win32.exe

Затем написал программу тект ниже:

Код
#include <math.h>

float a=1.2F;
float b=3.21F;
float c=0.0F;

void main(void)
{
c=sin(a+b);
b=cos(a+c);
}


Построил бинарник и все необходимые файлы командами:
Код
arm-none-eabi-gcc -std=c99 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv4 -c fpu.c -o fpu.elf -lm
arm-none-eabi-objdump -D fpu.elf > fpu.asm
arm-none-eabi-objcopy -O binary fpu.elf fpu.bin


При просмотре листинга видно, что функции sin( ) и cos( ) НЕ ИМПЛЕМЕНТИРОВАЛИСЬ, вместо них стоит переход:
Код
18:    e3403000     movt    r3, #0
  1c:    edd37a00     vldr    s15, [r3]
  20:    ee777a27     vadd.f32    s15, s14, s15
  24:    eef70ae7     vcvt.f64.f32    d16, s15
  28:    eeb00b60     vmov.f64    d0, d16
  2c:    ebfffffe     bl    0 <sin> ----------------------------- !!! нет вызова
  30:    eef00b40     vmov.f64    d16, d0
  34:    eef77be0     vcvt.f32.f64    s15, d16
  38:    e3003000     movw    r3, #0
  3c:    e3403000     movt    r3, #0
  40:    edc37a00     vstr    s15, [r3]
  44:    e3003000     movw    r3, #0
  48:    e3403000     movt    r3, #0
  4c:    ed937a00     vldr    s14, [r3]
  50:    e3003000     movw    r3, #0
  54:    e3403000     movt    r3, #0
  58:    edd37a00     vldr    s15, [r3]
  5c:    ee777a27     vadd.f32    s15, s14, s15
  60:    eef70ae7     vcvt.f64.f32    d16, s15
  64:    eeb00b60     vmov.f64    d0, d16
  68:    ebfffffe     bl    0 <cos> ----------------------------- !!! нет вызова


Других тулчейнов нет, пробовал soft-fpu, ничего не меняется, функции из math.h не имплементируются вообще!

Залез в папки тулчейна, так там libm.a несколько штук:

...\GCCARM\arm-none-eabi\lib\libm.a
...\GCCARM\arm-none-eabi\lib\thumb\libm.a
...\GCCARM\arm-none-eabi\lib\thumb\v7-ar\libm.a
...\GCCARM\arm-none-eabi\lib\thumb\v7-ar\fpv3\hard\libm.a
...\GCCARM\arm-none-eabi\lib\hard\libm.a

У меня нет слов, одни эмоции (касаемо GCC тулчейна)!

Помогите плиз, нужен хардварный синус/косинус для ядра Cortex-A7, VFPv4 или NEON - для floating point, как решить проблему?
Go to the top of the page
 
+Quote Post
8 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 99)
scifi
сообщение Oct 1 2017, 08:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 10:34) *
Скачал и поставил, затем ребутнул (для переменных окружения) GCC-тулчейн: gcc-arm-none-eabi-6-2017-q2-update-win32.exe
...
Помогите плиз, нужен хардварный синус/косинус для ядра Cortex-A7, VFPv4 или NEON - для floating point, как решить проблему?

Во-первых, не то скачали. Там английским по белому написано "Arm Cortex-M and Cortex-R". То есть дальше его ковырять нет смысла. Ищите правильный gcc.

Попробуйте вот это.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 08:40
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(scifi @ Oct 1 2017, 08:00) *
Попробуйте вот это.


Там 4 тулчейна и все оканчиваются на eabi, тоесть привязано к операционной системе. Мне надо под железо писать, какой из этих тулчейнов сойдёт?

Разработка в Win32, целевая платформа Cortex-A7.

gcc-linaro-6.3.1-2017.05-i686-mingw32_arm-eabi.tar.xz 23-May-2017 08:39 388.7M open
gcc-linaro-6.3.1-2017.05-i686_arm-eabi.tar.xz 23-May-2017 08:39 263.8M open
gcc-linaro-6.3.1-2017.05-x86_64_arm-eabi.tar.xz 23-May-2017 08:39 248.1M open
sysroot-newlib-linaro-2017.05-arm-eabi.tar.xz 23-May-2017 08:39 44.2M open
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2017, 08:45
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Вот здесь разъясняют. Видимо, вам надо arm-eabihf, но такого там нет. Пичалька crying.gif
Вероятно, придётся собирать тулчейн самостоятельно.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 08:47
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



тот тулчейн что я скачал в ридмишнике написано :

Цитата
|----------|--------------------------------------------|----------|
|Cortex-A* | [-mthumb] -march=armv7-a | armv7-ar |
|(No FP) | | /thumb |
|----------|--------------------------------------------|----------|
|Cortex-A* | [-mthumb] -march=armv7-a -mfloat-abi=softfp| armv7-ar |
|(Soft FP) | -mfpu=vfpv3-d16 | /thumb |
| | | /softfp |
|----------|--------------------------------------------|----------|
|Cortex-A* | [-mthumb] -march=armv7-a -mfloat-abi=hard | armv7-ar |
|(Hard FP) | -mfpu=vfpv3-d16 | /thumb |
| | | /fpu |
--------------------------------------------------------------------


Я правильно думаю, что -march=armv7-a - это Cortex-A7 ?
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2017, 08:49
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 11:47) *
Я правильно думаю, что -march=armv7-a - это Cortex-A7 ?

Здесь написано.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 08:57
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(scifi @ Oct 1 2017, 08:49) *
Здесь написано.


Спасибо! sm.gif

Глянул:
Цитата
ARMv7-A => ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17


Значит тот тулчейн который я скачал тоже подходит!

Вызвал раздельно компиляцию и линковку, появился sin, cos, но вызовы ОЧЕНЬ стрёмные, Hard FPU тут даже и не пахнет:

Код
000081b4 <main>:
    81b4:    e92d4800     push    {fp, lr}
    81b8:    e28db004     add    fp, sp, #4
    81bc:    e30a3de4     movw    r3, #44516; 0xade4
    81c0:    e3403001     movt    r3, #1
    81c4:    ed937a00     vldr    s14, [r3]
    81c8:    e30a3de8     movw    r3, #44520; 0xade8
    81cc:    e3403001     movt    r3, #1
    81d0:    edd37a00     vldr    s15, [r3]
    81d4:    ee777a27     vadd.f32    s15, s14, s15
    81d8:    eeb00a67     vmov.f32    s0, s15
    81dc:    fa000005     blx    81f8 <sinf>
    81e0:    eef07a40     vmov.f32    s15, s0
    81e4:    e30b364c     movw    r3, #46668; 0xb64c
    81e8:    e3403001     movt    r3, #1
    81ec:    edc37a00     vstr    s15, [r3]
    81f0:    e320f000     nop    {0}
    81f4:    e8bd8800     pop    {fp, pc}

000081f8 <sinf>:
    81f8:    ee10 3a10     vmov    r3, s0
    81fc:    f640 72d8     movw    r2, #4056; 0xfd8
    8200:    f6c3 7249     movt    r2, #16201; 0x3f49
    8204:    b500          push    {lr}
    8206:    b083          sub    sp, #12
    8208:    f023 4300     bic.w    r3, r3, #2147483648; 0x80000000
    820c:    4293          cmp    r3, r2
    820e:    dd1a          ble.n    8246 <sinf+0x4e>
    8210:    f1b3 4fff     cmp.w    r3, #2139095040; 0x7f800000
    8214:    db04          blt.n    8220 <sinf+0x28>
    8216:    ee30 0a40     vsub.f32    s0, s0, s0
    821a:    b003          add    sp, #12
    821c:    f85d fb04     ldr.w    pc, [sp], #4
    8220:    4668          mov    r0, sp
    8222:    f000 f833     bl    828c <__ieee754_rem_pio2f>
    8226:    f000 0003     and.w    r0, r0, #3
    822a:    2801          cmp    r0, #1
    822c:    d01d          beq.n    826a <sinf+0x72>
    822e:    2802          cmp    r0, #2
    8230:    d011          beq.n    8256 <sinf+0x5e>
    8232:    b308          cbz    r0, 8278 <sinf+0x80>
    8234:    eddd 0a01     vldr    s1, [sp, #4]
    8238:    ed9d 0a00     vldr    s0, [sp]
    823c:    f000 f960     bl    8500 <__kernel_cosf>
    8240:    eeb1 0a40     vneg.f32    s0, s0
    8244:    e7e9          b.n    821a <sinf+0x22>
    8246:    2000          movs    r0, #0
    8248:    eddf 0a0f     vldr    s1, [pc, #60]; 8288 <sinf+0x90>
    824c:    f000 fd08     bl    8c60 <__kernel_sinf>
    8250:    b003          add    sp, #12
    8252:    f85d fb04     ldr.w    pc, [sp], #4
    8256:    2001          movs    r0, #1
    8258:    eddd 0a01     vldr    s1, [sp, #4]
    825c:    ed9d 0a00     vldr    s0, [sp]
    8260:    f000 fcfe     bl    8c60 <__kernel_sinf>
    8264:    eeb1 0a40     vneg.f32    s0, s0
    8268:    e7d7          b.n    821a <sinf+0x22>
    826a:    eddd 0a01     vldr    s1, [sp, #4]
    826e:    ed9d 0a00     vldr    s0, [sp]
    8272:    f000 f945     bl    8500 <__kernel_cosf>
    8276:    e7d0          b.n    821a <sinf+0x22>
    8278:    2001          movs    r0, #1
    827a:    eddd 0a01     vldr    s1, [sp, #4]
    827e:    ed9d 0a00     vldr    s0, [sp]
    8282:    f000 fced     bl    8c60 <__kernel_sinf>
    8286:    e7c8          b.n    821a <sinf+0x22>
    8288:    00000000     andeq    r0, r0, r0

00008500 <__kernel_cosf>:
    8500:    ee10 3a10     vmov    r3, s0
    8504:    f023 4300     bic.w    r3, r3, #2147483648; 0x80000000
    8508:    f1b3 5f48     cmp.w    r3, #838860800; 0x32000000
    850c:    da2c          bge.n    8568 <__kernel_cosf+0x68>
    850e:    eefd 7ac0     vcvt.s32.f32    s15, s0
    8512:    ee17 3a90     vmov    r3, s15
    8516:    2b00          cmp    r3, #0
    8518:    d067          beq.n    85ea <__kernel_cosf+0xea>
    851a:    ee20 7a00     vmul.f32    s14, s0, s0
    851e:    eddf 7a34     vldr    s15, [pc, #208]; 85f0 <__kernel_cosf+0xf0>
    8522:    ed9f 5a34     vldr    s10, [pc, #208]; 85f4 <__kernel_cosf+0xf4>
    8526:    eddf 5a34     vldr    s11, [pc, #208]; 85f8 <__kernel_cosf+0xf8>
    852a:    ed9f 6a34     vldr    s12, [pc, #208]; 85fc <__kernel_cosf+0xfc>
    852e:    ee07 5a27     vmla.f32    s10, s14, s15
    8532:    eddf 7a33     vldr    s15, [pc, #204]; 8600 <__kernel_cosf+0x100>
    8536:    eddf 6a33     vldr    s13, [pc, #204]; 8604 <__kernel_cosf+0x104>
    853a:    ee55 5a07     vnmls.f32    s11, s10, s14
    853e:    ee05 6a87     vmla.f32    s12, s11, s14
    8542:    ee56 7a07     vnmls.f32    s15, s12, s14
    8546:    ee47 6a87     vmla.f32    s13, s15, s14
    854a:    ee66 6a87     vmul.f32    s13, s13, s14
    854e:    ee20 0a20     vmul.f32    s0, s0, s1
    8552:    ee17 0a26     vnmls.f32    s0, s14, s13
    8556:    eef6 7a00     vmov.f32    s15, #96; 0x3f000000  0.5
    855a:    ee17 0a27     vnmls.f32    s0, s14, s15
    855e:    eef7 7a00     vmov.f32    s15, #112; 0x3f800000  1.0
    8562:    ee37 0ac0     vsub.f32    s0, s15, s0
    8566:    4770          bx    lr
    8568:    ee20 7a00     vmul.f32    s14, s0, s0
    856c:    f649 1299     movw    r2, #39321; 0x9999
    8570:    eddf 7a1f     vldr    s15, [pc, #124]; 85f0 <__kernel_cosf+0xf0>
    8574:    f6c3 6299     movt    r2, #16025; 0x3e99
    8578:    4293          cmp    r3, r2
    857a:    ed9f 5a1e     vldr    s10, [pc, #120]; 85f4 <__kernel_cosf+0xf4>
    857e:    eddf 5a1e     vldr    s11, [pc, #120]; 85f8 <__kernel_cosf+0xf8>
    8582:    ed9f 6a1e     vldr    s12, [pc, #120]; 85fc <__kernel_cosf+0xfc>
    8586:    ee07 5a27     vmla.f32    s10, s14, s15
    858a:    eddf 7a1d     vldr    s15, [pc, #116]; 8600 <__kernel_cosf+0x100>
    858e:    eddf 6a1d     vldr    s13, [pc, #116]; 8604 <__kernel_cosf+0x104>
    8592:    ee55 5a07     vnmls.f32    s11, s10, s14
    8596:    ee05 6a87     vmla.f32    s12, s11, s14
    859a:    ee56 7a07     vnmls.f32    s15, s12, s14
    859e:    ee47 6a87     vmla.f32    s13, s15, s14
    85a2:    ee66 6a87     vmul.f32    s13, s13, s14
    85a6:    ddd2          ble.n    854e <__kernel_cosf+0x4e>
    85a8:    2200          movs    r2, #0
    85aa:    f6c3 7248     movt    r2, #16200; 0x3f48
    85ae:    4293          cmp    r3, r2
    85b0:    bfdc          itt    le
    85b2:    f103 437f     addle.w    r3, r3, #4278190080; 0xff000000
    85b6:    ee07 3a90     vmovle    s15, r3
    85ba:    ee20 0a20     vmul.f32    s0, s0, s1
    85be:    bfd4          ite    le
    85c0:    eeb7 6a00     vmovle.f32    s12, #112; 0x3f800000  1.0
    85c4:    eef5 7a02     vmovgt.f32    s15, #82; 0x3e900000  0.2812500
    85c8:    eef6 5a00     vmov.f32    s11, #96; 0x3f000000  0.5
    85cc:    bfd8          it    le
    85ce:    ee36 6a67     vsuble.f32    s12, s12, s15
    85d2:    ee17 0a26     vnmls.f32    s0, s14, s13
    85d6:    ee57 7a25     vnmls.f32    s15, s14, s11
    85da:    bfc8          it    gt
    85dc:    eeb6 6a07     vmovgt.f32    s12, #103; 0x3f380000  0.7187500
    85e0:    ee37 0ac0     vsub.f32    s0, s15, s0
    85e4:    ee36 0a40     vsub.f32    s0, s12, s0
    85e8:    4770          bx    lr
    85ea:    eeb7 0a00     vmov.f32    s0, #112; 0x3f800000  1.0
    85ee:    4770          bx    lr
    85f0:    ad47d74e     stclge    7, cr13, [r7, #-312]; 0xfffffec8
    85f4:    310f74f6     strdcc    r7, [pc, -r6]
    85f8:    3493f27c     ldrcc    pc, [r3], #636; 0x27c
    85fc:    37d00d01     ldrbcc    r0, [r0, r1, lsl #26]
    8600:    3ab60b61     bcc    fed8b38c <_stack+0xfed0b38c>
    8604:    3d2aaaab     vstmdbcc    sl!, {s20-s190}


Это просто абзац!

Билдил этими командами:

Код
arm-none-eabi-gcc -std=c99 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv4 -c fpu.c

arm-none-eabi-gcc --specs=rdimon.specs -march=armv7-a -mfloat-abi=hard -mfpu=vfpv4 -o fpu.elf fpu.o -lm

arm-none-eabi-objdump -D fpu.elf > fpu.asm

arm-none-eabi-objcopy -O binary fpu.elf fpu.bin


Куда дальше рыть?
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2017, 08:59
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 11:57) *
Куда дальше рыть?

Цитата(scifi @ Oct 1 2017, 11:45) *
Вероятно, придётся собирать тулчейн самостоятельно.

Тот же линаро вроде бы публикует скрипты для сборки. Ещё рассказывают про buildroot и всё такое.

Есть ещё Sysprogs, но я не знаю, есть ли там hardfloat.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 1 2017, 09:06
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(__inline__ @ Oct 1 2017, 11:57) *
Hard FPU тут даже и не пахнет:

Шок-абзац, ага. А команды вида vXXX.f32 - это что, как думаете?
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 09:11
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Тут пишут https://habrahabr.ru/post/319736/ , что:
Цитата
*eabihf — это почти то же самое, что и eabi, с разницей в реализации ABI вызова функций с плавающей точкой. hf — расшифровывается как hard float

Так может разница лишь в реализации вызова функций с FP?

Есть ли ещё какие-нибудь компиляторы для Cortex-A7, кроме вышеупомянутых?

И вообще GNU - дрянь ещё та... Писал во многих средах: Keil ARM MDK, IAR, Visual DSP, Visual C,.... - нигде такого гемора как с GNU нет
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2017, 09:14
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 10:34) *
Помогите плиз, нужен хардварный синус/косинус для ядра Cortex-A7, VFPv4 или NEON - для floating point, как решить проблему?

Что такое "хардварный синус/косинус"? Вычисление одной инструкцией? Такое вообще существует в природе?

Цитата(__inline__ @ Oct 1 2017, 12:11) *
И вообще GNU - дрянь ещё та... Писал во многих средах: Keil ARM MDK, IAR, Visual DSP, Visual C,.... - нигде такого гемора как с GNU нет

Мыши плакали, кололись, но продолжали жрать кактус. Ну и используйте всё вышеупомянутое, кто же мешает?
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 09:18
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(aaarrr @ Oct 1 2017, 09:06) *
Шок-абзац, ага. А команды вида vXXX.f32 - это что, как думаете?

Это то что мне надо, и я это видел. Вопрос ни к ним, а к реализации синуса/косинуса. Почему так фигово реализовано? Я подозреваю, что из-за неправильных ключей компилятора/линковщика и отсутствия явно заданных путей. Одних только libm.a - куча и какая из них используется???

И с адреса 0x8000 программа пошла, хотя для линковщика ниче не указано, и _exit() понадобился... Одно г_вно честное слово...

Цитата(scifi @ Oct 1 2017, 09:14) *
Что такое "хардварный синус/косинус"? Вычисление одной инструкцией? Такое вообще существует в природе?


Существует: начиная ещё с древних со-процессоров x87 intel: fsin,fcos.

Цитата(scifi @ Oct 1 2017, 09:14) *
Мыши плакали, кололись, но продолжали жрать кактус. Ну и используйте всё вышеупомянутое, кто же мешает?


Мешает отсутствие альтернативы. С удовольствием писал бы в Keil ARM MDK, но там нет Coretex-A7 без привязки к контроллеру.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2017, 09:20
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 12:18) *
Существует: начиная ещё с древних со-процессоров x87 intel: fsin,fcos.

Хорошо, уточняю: у Cortex-A7 есть такие инструкции?

Update:

Похоже, аффтар слился. Обкакал GNU, а оказалось, что это его собственное недомыслие. Бывает, чо.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 09:34
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(scifi @ Oct 1 2017, 09:20) *
Хорошо, уточняю: у Cortex-A7 есть такие инструкции?

Подозреваю, что нет. Но я не дурак и вижу, что sin() и cos() по своему объёму не внушают быстродействия. А значит, не все ключи оптимизации задействованы или нужно другую либу math подключить. Вот я и хочу выяснить, есть ли более лучший вариант реализации или мне пасти нечего?

В ряд Тейлора и то быстрее было бы.

Ещё раз прогнал код, на этот раз проверил ещё умножение и корень - эти работают как надо:

Код
#include <fastmath.h>

float a=1.2F;
float b=3.21F;
float c=0.0F;

void main(void)
{
c=a+b;
a=b*c;
b=sinf(a);
c=sqrtf(b);
}

void _exit(int i)
{
while(1);
}


00008030 <main>:
    8030:    b538          push    {r3, r4, r5, lr}
    8032:    f249 642c     movw    r4, #38444; 0x962c
    8036:    f2c0 0401     movt    r4, #1
    803a:    f649 2588     movw    r5, #39560; 0x9a88
    803e:    f2c0 0501     movt    r5, #1
    8042:    ed2d 8b02     vpush    {d8}
    8046:    edd4 7a00     vldr    s15, [r4]
    804a:    ed94 7a01     vldr    s14, [r4, #4]
    804e:    ee37 7a87     vadd.f32    s14, s15, s14         ------------OK
    8052:    ee67 7a87     vmul.f32    s15, s15, s14        ------------OK
    8056:    ed85 7a00     vstr    s14, [r5]
    805a:    eeb0 0a67     vmov.f32    s0, s15
    805e:    edc4 7a01     vstr    s15, [r4, #4]
    8062:    f000 f89d     bl    81a0 <sinf>         ---------- VERY BAD !!!
    8066:    eeb5 0a40     vcmp.f32    s0, #0.0
    806a:    ed84 0a00     vstr    s0, [r4]
    806e:    eeb1 8ac0     vsqrt.f32    s16, s0     ------------OK


Напрягает наличие процедуры _exit() и программа слинковалась для адреса 0x8000.
Можно ли как-то избавиться от _exit() и слинковать для адреса 0, не прибегая к линкерным скриптам? (я это могу сделать, только не даёт покоя вопрос, почему в первом случае слинковалось без мусора с с 0? (см. первый пост))
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2017, 09:49
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 12:34) *
Подозреваю, что нет. Но я не дурак и вижу, что sin() и cos() по своему объёму не внушают быстродействия. А значит, не все ключи оптимизации задействованы или нужно другую либу math подключить. Вот я и хочу выяснить, есть ли более лучший вариант реализации или мне пасти нечего?

Кому-то нужно быстродействие в ущерб точности, кому-то - точность в ущерб быстродействию. Не исключено, что та же glibc всё делает быстро, но это уже линух. А вот newlib, скорее, будет напирать на точность.
Короче, сделайте свой синус, кто же мешает? Подсунуть свою функцию вместо библиотечной - дело нехитрое, ЕМНИП.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 09:49
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



скачал gcc-linaro-6.3.1-2017.05-i686_arm-eabi.tar.xz - в бинарниках эльфы, а не эхе.
Нету там под маздай ничего....
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2017, 09:52
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 12:49) *
скачал gcc-linaro-6.3.1-2017.05-i686_arm-eabi.tar.xz - в бинарниках эльфы, а не эхе.
Нету там под маздай ничего....

А если вот это:
gcc-linaro-6.3.1-2017.05-i686-mingw32_arm-eabi.tar.xz
Ну блин, нельзя же так cranky.gif
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 09:59
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(scifi @ Oct 1 2017, 09:49) *
Короче, сделайте свой синус, кто же мешает? Подсунуть свою функцию вместо библиотечной - дело нехитрое, ЕМНИП.

Я с вами согласен, но ломается сам кайф от использования ЯВУ. И GCC тут - явный чемпион (по обломам).

И программа с 0x8000 пошла, а не с 0. И куча лажи прошилось:
init, exit, register_fini, __do_global_dtors_aux,.......... - и куча всего ненужного! А хотелось только sin/cos из libm.a !!!
GCC поддерживает вырезание ненужного кода/данных?


Цитата(scifi @ Oct 1 2017, 09:52) *
А если вот это:
gcc-linaro-6.3.1-2017.05-i686-mingw32_arm-eabi.tar.xz
Ну блин, нельзя же так cranky.gif

Я это понял как компилятор для сборки ARM- и MINGW- приложений... Под Линуксом... Качаю сейчас его, посмотрим.

Это я тупой или линуксоиды слишком умные? Почему когда соприкасаешься с GCC, то он кроме негативных реакций ничего не вызываeт?

ARM GCC, что и Кокос(cookox) - дерьмо полнейшее. Последний умер, правда.

Сообщение отредактировал __inline__ - Oct 1 2017, 09:56
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 1 2017, 10:00
Сообщение #19


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



А с каких пор в этих процессорах хардварный синус с косинусом появился?

Для оптимизации имеющегося: для вычислений с одинарной точностью (float) есть функции sinf и cosf. Еще поможет -fno-math-errno. Это обязательтное условие для инлайна sqrtf.

В моем случае выглядит вот так (синусы-косинусы таблицами):

arm-none-eabi-gcc -c -mcpu=cortex-a9 -march=armv7-a -mfloat-abi=hard -mfpu=neon -ftree-vectorize -fno-math-errno -funroll-loops -fgraphite-identity -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wa
ll -Wstrict-prototypes -DNDEBUG=1 -DCPUSTYLE_R7S721=1 -DCPUSTYLE_R7S721020=1 -MD -MP -MF ./dep/bandfilters.o.d -I.. -I../rza1x_inc -I.. ../bandfilters.c -o bandfilters.o

Сообщение отредактировал Genadi Zawidowski - Oct 1 2017, 10:04
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 10:03
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Genadi Zawidowski @ Oct 1 2017, 10:00) *
А с каких пор в этих процессорах хардварный синус с косинусом появился?

Для оптимизации имеющегося: для вычислений с одинарной точностью (float) есть функции sinf и cosf. Еще поможет -fno-math-errno.

В моем случае выглядит вот так (синусы-косинусы таблицами):

arm-none-eabi-gcc -c -mcpu=cortex-a9 -march=armv7-a -mfloat-abi=hard -mfpu=neon -ftree-vectorize -fno-math-errno -funroll-loops -fgraphite-identity -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wa
ll -Wstrict-prototypes -DNDEBUG=1 -DCPUSTYLE_R7S721=1 -DCPUSTYLE_R7S721020=1 -MD -MP -MF ./dep/bandfilters.o.d -I.. -I../rza1x_inc -I.. ../bandfilters.c -o bandfilters.o


За ключи - спасибо! sm.gif Попробую! А про f в конце в курсе.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 1 2017, 10:09
Сообщение #21


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(__inline__ @ Oct 1 2017, 13:03) *
За ключи - спасибо! sm.gif Попробую! А про f в конце в курсе.


Про "в курсе" из кусков кода видно небыло.
Вот скрипты из моего проекта. тулчейн отсюда.

Сообщение отредактировал Genadi Zawidowski - Oct 1 2017, 10:15
Прикрепленные файлы
Прикрепленный файл  r7s721020_spi.zip ( 3.41 килобайт ) Кол-во скачиваний: 5
 
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 10:14
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Genadi Zawidowski @ Oct 1 2017, 10:09) *
Про "в курсе" из кусков кода видно небыло.
Вот скрипты из моего проекта.


Ещё раз - спасибо! Кстати, тот GCC что я скачал - не имеет утилиты make, как я буду по макам собирать - это загадка, сдела сейчас батник, но для больших программ так не годится.

Больше всего меня убивает, что когда возишься с GNU, то пляска с докачкой дополнительных утилит и обвесами патчей - гарантирована!
Такого нет ни в одной другой среде программирования, даже OpenWatcom по сравнению с GCC - это как небо и земля
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 1 2017, 10:22
Сообщение #23


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



мэйк у меня от Atmel-овского тулчейна есть... можно yagarto-всктм yagarto-tools-20121018-setup.exe воспользоваться (правда тут http://www.yagarto.org/ или тут http://www.emb4fun.de/ я его уже не нашел).

Про make.exe от Атмела:

Atmel AVR 8-bit and 32-bit Toolchain 3.4.2 - Windows
http://www.atmel.com/images/avr-toolchain-...2.win32.x86.exe

Для обеспечения работы под x64 версиями Windows 8.x, Windows 10 скачать
http://www.madwizard.org/download/electron...1.0-vista64.zip
И разархивировать msys-1.0.dll в тот же каталог, где находится make.exe
Или взять данный файл (или целиком пакет) с download page проекта MinGW - Minimalist GNU for Windows
http://sourceforge.net/projects/mingw

Сообщение отредактировал Genadi Zawidowski - Oct 1 2017, 10:26
Прикрепленные файлы
Прикрепленный файл  yagarto_tools_20121018_setup.rar ( 1.15 мегабайт ) Кол-во скачиваний: 6
 
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 10:23
Сообщение #24


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Genadi Zawidowski @ Oct 1 2017, 10:09) *
Вот скрипты из моего проекта. тулчейн отсюда.

У меня такой же тулчейн, последняя версия
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2017, 10:26
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 13:14) *
Кстати, тот GCC что я скачал - не имеет утилиты make, как я буду по макам собирать - это загадка, сдела сейчас батник, но для больших программ так не годится.

Можно скачать отсюда.
Цитата(__inline__ @ Oct 1 2017, 13:14) *
Больше всего меня убивает, что когда возишься с GNU, то пляска с докачкой дополнительных утилит и обвесами патчей - гарантирована!

Это потому, что не под линухом. Там всё уже есть. И звените.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 10:31
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Genadi Zawidowski @ Oct 1 2017, 10:22) *
мэйк у меня от Atmel-овского тулчейна есть... можно yagarto-всктм yagarto-tools-20121018-setup.exe воспользоваться (правда тут http://www.yagarto.org/ или тут http://www.emb4fun.de/ я его уже не нашел).

Про make.exe от Атмела:

Atmel AVR 8-bit and 32-bit Toolchain 3.4.2 - Windows
http://www.atmel.com/images/avr-toolchain-...2.win32.x86.exe

Для обеспечения работы под x64 версиями Windows 8.x, Windows 10 скачать
http://www.madwizard.org/download/electron...1.0-vista64.zip
И разархивировать msys-1.0.dll в тот же каталог, где находится make.exe
Или взять данный файл (или целиком пакет) с download page проекта MinGW - Minimalist GNU for Windows
http://sourceforge.net/projects/mingw


Никогда не думал, что make от других тулчейнов может подойти.
Ранее качал mingw для win32 - сборка от MAMEspirits - впечатления самые приятные - засунули даже Netwide Assembler и кучу библиотек.
А вот в стандартном тулчейне mingw много чего не хватало, пришлось выкачивать почти пол-интернета, чтобы портировать.
Но это была платформа Win32, сейчас вот с АРМ-ами надо разобраться

Цитата(scifi @ Oct 1 2017, 10:26) *
Можно скачать отсюда.
Это потому, что не под линухом. Там всё уже есть. И звените.

Под Линуксом та же фигня. Чтоб собрать загрузчик для Allwinner - нужно кучу патчей накладывать, прежде чем получить заветный бинарник под нужный процессор и под нужный источник загрузки(SPI, SD, FEL).
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 1 2017, 10:33
Сообщение #27


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата
Затем написал программу тект ниже

С хорошей оптимизацией (те ключи что в моем проекте) такая программа заоптимизируется в ничто.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 1 2017, 11:59
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(__inline__ @ Oct 1 2017, 14:34) *
При просмотре листинга видно, что функции sin( ) и cos( ) НЕ ИМПЛЕМЕНТИРОВАЛИСЬ, вместо них стоит переход:
...
У меня нет слов, одни эмоции (касаемо GCC тулчейна)!

Эмоции надеюсь радостные?
Не очень понятно - что Вас озадачило? Такая "программа" на выходе компилятора должна дать просто return.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 12:42
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(jcxz @ Oct 1 2017, 11:59) *
Эмоции надеюсь радостные?
Не очень понятно - что Вас озадачило? Такая "программа" на выходе компилятора должна дать просто return.

Ну так подскажите, что неправильно, а не издевайтесь тут!
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 1 2017, 12:46
Сообщение #30


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(__inline__ @ Oct 1 2017, 12:18) *
Мешает отсутствие альтернативы. С удовольствием писал бы в Keil ARM MDK, но там нет Coretex-A7 без привязки к контроллеру.


Да ладно? biggrin.gif

То-то у меня сейчас проект под ИАР для кортекса А9, без привязки к конкретному процу. Просто отличие в том, что с привязкой там все параметры стартапа и линкера проставляются автоматом.

Цитата(__inline__ @ Oct 1 2017, 13:14) *
Больше всего меня убивает, что когда возишься с GNU, то пляска с докачкой дополнительных утилит и обвесами патчей - гарантирована!
Такого нет ни в одной другой среде программирования, даже OpenWatcom по сравнению с GCC - это как небо и земля


А как вы думали, почему за коммерческий софт просят не хилые бабки? В последнее время - совсем не хилые??
Есть куча времени и нервов - добро пожаловать в мир бесплатного софта, ищем бубен и начинаем плясать biggrin.gif
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 1 2017, 12:53
Сообщение #31


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(mantech @ Oct 1 2017, 12:46) *
1) То-то у меня сейчас проект под ИАР для кортекса А9, без привязки к конкретному процу. Просто отличие в том, что с привязкой там все параметры стартапа и линкера проставляются автоматом.

2) А как вы думали, почему за коммерческий софт просят не хилые бабки? В последнее время - совсем не хилые??
Есть куча времени и нервов - добро пожаловать в мир бесплатного софта, ищем бубен и начинаем плясать biggrin.gif


1) Как бы не фанат ИАРа. Мне бы Keil sm.gif Но в v.4 он не поддерживает Cortex-A7. Версия 5 у меня не идет (потому что ХРюн и 32 бита, ставить анальные зонды - блевисты 7,8, ,... нет желания).

2) Коммерческий софт лечится таблЭтками sm.gif
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Oct 1 2017, 14:34
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(__inline__ @ Oct 1 2017, 19:53) *
Мне бы Keil sm.gif Но в v.4 он не поддерживает Cortex-A7. Версия 5 у меня не идет (потому что ХРюн и 32 бита, ставить анальные зонды - блевисты 7,8, ,... нет желания).

В XP нормально работает 5.17. Версия 5.18а тоже нормально работает, но часто при закрытии программы повисает(но ничего не теряет). А вот 5.20 уже не работает.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 1 2017, 14:36
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(__inline__ @ Oct 1 2017, 19:42) *
Ну так подскажите, что неправильно, а не издевайтесь тут!

Почему неправильно? Всё там правильно. И компилятор тоже прав. Если соптимизировал тот код в 0.
Go to the top of the page
 
+Quote Post
_3m
сообщение Oct 2 2017, 07:01
Сообщение #34


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(__inline__ @ Oct 1 2017, 15:53) *
2) Коммерческий софт лечится таблЭтками sm.gif

Попробуйте объяснить прокурору про таблетки. Уверен он поймет вас неправильно - лет на семь т.к кейл/иар сразу тянут на "особо крупный размер".
Еще расскажите заказчику про покупку лицензии на компилятор когда он потребует легализации разработанного ПО.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 2 2017, 11:05
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(_3m @ Oct 2 2017, 07:01) *
Попробуйте объяснить прокурору про таблетки. Уверен он поймет вас неправильно - лет на семь т.к кейл/иар сразу тянут на "особо крупный размер".
Еще расскажите заказчику про покупку лицензии на компилятор когда он потребует легализации разработанного ПО.

Спасибо, посмеялся! santa2.gif
Попробуйте зажигать пуканы юзерам в другом месте! biggrin.gif
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 2 2017, 11:46
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(__inline__ @ Oct 1 2017, 15:53) *
Версия 5 у меня не идет (потому что ХРюн и 32 бита, ставить анальные зонды - блевисты 7,8, ,... нет желания).

Мсье изволит эстетствовать biggrin.gif
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 2 2017, 12:08
Сообщение #37


неотягощённый злом
******

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



Чтобы нормально разобраться в принципах работы gcc-xxx, утилиты make и т.д.и т.п. нужен не один месяц.
Вместо того, чтобы устраивать подобную клоунаду ТС просто необходимо научиться читать доки.
Жаль что Чукча не читатель, а писатель.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 2 2017, 12:23
Сообщение #38


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Не переживайте!
Освоение GCC в процессе! rolleyes.gif
Наконец-то выжал, что нужно! fman.gif
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 2 2017, 13:36
Сообщение #39


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(__inline__ @ Oct 1 2017, 15:53) *
ставить анальные зонды - блевисты 7,8, ,... нет желания).

Недавно на всех своих компах поставил вин 10 x64, заранее купил на ебеи три ключа (5$ за один), в итоге ось получилась официальная, никаких вопросов и таблеток sm.gif
Теперь все софтины работают как надо, особенно те, которые не хотели заводится на старой вин 7 х64.
Вот думаю прикупить ключи для вин-офиса (5..10$) ...
Короче, привыкаю к официальному платному софту. Не подкопаться biggrin.gif




--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 2 2017, 14:02
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Forger @ Oct 2 2017, 16:36) *
Короче, привыкаю к официальному платному софту. Не подкопаться biggrin.gif

С точки зрения прокурора это точно такой же мухлёж, только вам ещё и раскошелиться пришлось biggrin.gif
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 2 2017, 14:20
Сообщение #41


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Поставил ARM DS-5 из дебрей интернета, так оказалось их ARM-compiler не имеет bare-metal таргета и пукает от некорректной лицензии.
В том же ИДЕ (он же Эклипс) есть опция GCC bare metal, сравнил выхлоп с первым тулчейном - результат один-в-одни, а Эклипс упростил сперва настройку проекта - флаги компиляции и встроенный make.

В итоге, после длительного ознакомления с флагами компилятора, линковщика, многократных экспериментов и просмотра листинга на асме, получил что хотел.
Ну и скрипт для линковщика написал, теперь всё линкуется как надо и куда надо, даже филлинг освоил (заливка оставшегося места нулевыми символами для получения объема прошивки ровно 16 кБ).

В целом GCC ARM неплох, как оказалось больше возможностей подёргать ключи оптимизации.

Пример:

Код
-march=armv7-a -mfpu=vfpv4 -mfloat-abi=hard -nostdinc -O3 -Wall -fomit-frame-pointer -fforce-addr -falign-jumps=4 -fgcse -std=c99 -marm -mlittle-endian -fpic -mtune=cortex-a7 --specs=nosys.specs -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections -nostdlib -nostartfiles -ffreestanding -fno-math-errno -fno-common -fno-builtin -ffreestanding -fno-strict-aliasing -mno-thumb-interwork -fno-stack-protector -fno-toplevel-reorder -Wstrict-prototypes -Wno-format-nonliteral -Wno-format-security -Wextra -Wno-unused-result -Wno-main

-T "test0.ld" -gc-sections -Wl,-N -fomit-frame-pointer -fforce-addr -falign-jumps=4 -fgcse -std=c99 -marm -mlittle-endian -fpic -mtune=cortex-a7 --specs=nosys.specs -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections -nostdlib -nostartfiles -ffreestanding -fno-math-errno -fno-common -fno-builtin -ffreestanding -fno-strict-aliasing -mno-thumb-interwork -fno-stack-protector -fno-toplevel-reorder -Wstrict-prototypes -Wno-format-nonliteral -Wno-format-security -Wextra -Wno-unused-result -Wno-main


Ну а на счёт блевисты, я имел ввиду, что она несанкционированно стучит и из неё сочится во все щели. Если в ХР как-то можно ещё заделать дыры, то в блевистах это практически невозможно. И вообще для меня это хобби, а не производственный процесс с получением выгоды, как тут некоторые поняли.
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 2 2017, 15:25
Сообщение #42


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(scifi @ Oct 2 2017, 17:02) *
С точки зрения прокурора это точно такой же мухлёж, только вам ещё и раскошелиться пришлось biggrin.gif

Прокурору до лампочки рядовой нищий (для него) юзер, а вот мне вовсе не до лампочки рассадник троянов и т.п. в кряках и активаторах!


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 2 2017, 15:29
Сообщение #43


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Forger @ Oct 2 2017, 18:25) *
Прокурору до лампочки рядовой нищий (для него) юзер, а вот мне вовсе не до лампочки рассадник троянов и т.п. в кряках и активаторах!


В конторе хочешь не хочешь, а придется покупать. До кризиса, ИАР вышел мне в 40 с копейками рублей (1100бакинских примерно), теперь взглянул на их ценник и офонарел(подд 200тку тянет!!), сейчас никогда бы не решился, проще человека нанять и заплатить за перепортирование на гцц... Но про винду - согласен с тсом - хрюша самая оптимальная для разработчика...
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 2 2017, 15:45
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(mantech @ Oct 2 2017, 18:29) *
В конторе хочешь не хочешь, а придется покупать.

Конторы начинает чесаться лишь тогда, когда установленный там "левый" софт начинает стучать своему разработчику ... вот беготня начинается! Боссы готовы до кучи покупать даже необязательные плагины biggrin.gif
Наблюдал такое однажды.... переживать начинают даже уборщицы crying.gif
Как говорится "пока жареный петух не клюнет"

Цитата
хрюша самая оптимальная для разработчика...
... архаичного софта sm.gif

Но любой современный софт требует современного железа и соотв. ось, а с этим уже ничего не поделать ((

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 2 2017, 17:35
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Forger @ Oct 2 2017, 22:45) *
Конторы начинает чесаться лишь тогда, когда установленный там "левый" софт начинает стучать своему разработчику ... вот беготня начинается!

Странная контора, админы которой не знают про файрволл.
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 2 2017, 17:42
Сообщение #46


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(jcxz @ Oct 2 2017, 20:35) *
Странная контора, админы которой не знают про файрволл.

С самой конторой все в порядке, но админы ... термин "файрволл" им наверняка знаком, но, видать, этим все и ограничивается smile3046.gif
После этого случая главным "админом" было принято, мягко говоря, странное решение: на ВСЕ компы поставили виртуалки с линухом, из-под которых был возможет выход в инет cranky.gif
Виртуалки, естественно, требуют повышенных ресурсов компа, поэтому было принято еще не менее странное решение - добавить в каждый комп ОЗУ до 8Гб...
Разумеется, добавка ОЗУ почти никак не отразилась на скорости работы компов, но, благодаря такому "интернету", армия поклонников этих "админов" немного поредела (мягко говоря) sm.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 2 2017, 19:44
Сообщение #47


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Forger @ Oct 2 2017, 18:45) *
... архаичного софта sm.gif

Но любой современный софт требует современного железа и соотв. ось, а с этим уже ничего не поделать ((


Не совсем, ну хорошо, кортекс А7, А9, можно сказать архаичный, мне хватает, зачем менять то, что хорошо работает, правда? Иногда общаюсь с людьми, говорят, вот надо то обновить, другое... Спрашиваешь, что, плохо работает? Нет, нормально. Тогда зачем обновлять? Просто от нечего делать, видимо... biggrin.gif

Цитата(Forger @ Oct 2 2017, 20:42) *
После этого случая главным "админом" было принято, мягко говоря, странное решение: на ВСЕ компы поставили виртуалки с линухом, из-под которых был возможет выход в инет cranky.gif
Виртуалки, естественно, требуют повышенных ресурсов компа, поэтому было принято еще не менее странное решение - добавить в каждый комп ОЗУ до 8Гб...


Ммда, ну и "админы"...

Сообщение отредактировал mantech - Oct 2 2017, 19:45
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 01:29
Сообщение #48


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



С удовольствием девелопил бы и на Windows 98, но есть причины, по которым это сделать теперь невозможно:

1) старые компы все ушли в мир инной, а на новый 98-я не устанавливается, просто зависает в середине установки и всё
2) большинство дев-софта не поддерживает 98 винду.
3) геморой с USB-устройствами - на принтер и флешки производители не пишут драйверы.

Помню как плевался, когда переходил на XP - это была целая традегия! В то время комп был 800 МГц + XP Home edition со свистоперделками.
С появлением более мощных компов и XP Professional edition жить стало по-легче.

НО, в XP мне не нравится ограничение доступа к железу, для общения с портами надо писать VXD-драйвер или качать готовый.
Например - WinIO, позволяющий писать/читать в любой порт или участок памяти.
Это для связи разрабатываемого устройства с компом - COM- LPT- USB- порты.

Ну и порезать ХР сложнее чем 98 (отключение, удаление ненужного барахла).

А вообще, моё мнение, нормальная винда заканчивается на 98-й, всё что позже - уже почикана виртуальная машина DOS, многое уже просто в нём не сделаешь.
Я воспитан в духе традиций - экономить память и оптимизировать по скорости всё, но к сожалению, в ЭПОХУ ГОВНОКОДА, эти достоинства нивелировались и теперь осмеиваются.

Ну ещё вспомните 90е - 2000-е, когда господствовали AVR-ки с ПИК-ами, в то время НИКТО НЕ СМЕЛ думать о том, как бы впендюрить ОС в них.
А теперь почему-то считается, что разработка под Embeedded должна идти на ОС.
Эпоха Говнокода, одним словом...

Ну ещё вспомнил, что видел скрипт на Питоне, который мигает лампочками на Raspberry Pi. Это клиника скажу я вам.... !
В анальные закрома уходят Ассемблер и Си, зато привествуется Си Диез и скриптовые языки, ну никак не предназначенные для программирования контроллеров!
Довольно весело и тошно одновременно читать на гиктаймсе/хабре выкладки какого-нибудь "админа" с приаттаченным фрагментом говно-кода на питоне, который мигает лампочками на распберри пи sm.gif Ого! Зто он "ТРУЪ адмЫн" и "повелитель железа" теперь: - укротил контроллер на 1-2 ГГц и теперь ходит с распальцовкой...
По моему мнению, он просто рядовой говнокодер!

Я понимаю, что Raspberry Pi и прочие клоны, Оллвиннеры, ИМХы, Ситары - это Application Processors, но это восе не значит, что нельзя на них писать напрямую (bare metal)!

Ситуация меняется, когда производители этих Application Processor-ов СОЗНАТЕЛЬНО ПРЯЧУТ ту самую фундаментальную информацию для работы на low level :
- как происходит загрузка программ
- алгоритмы работы периферии
- таблица векторов прерываний
Просто на отшибись дают выгрузку регистров с их описанием.

И хорошо, что есть Linux, в исходниках которого можно много чего подчерпнуть и ликвидировать пробелы.
Но согласитесь, такой подход к "изучению" процессора - весьма нелёгок и неоптимален!

Про софт и палево:
Про стучание софтом, можно вообще убрать эти ваши интернеты, на машинах разработчика. Сделать отдельную машину с интернетами, изолированную от других.
Или фаервол с белым списком.

Сообщение отредактировал __inline__ - Oct 3 2017, 01:55
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 05:58
Сообщение #49


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(__inline__ @ Oct 3 2017, 04:29) *
можно вообще убрать эти ваши интернеты, на машинах разработчика

Для архаичных разработок интернет, может быть, и не нужен, но заказчиков такого архаизма уже почти не осталось (разве что кроме отечественных госзаказов, где чем больше возраст микросхеме, тем дороже железо и потому лучше всем) sm.gif
Однако, в настоящее время без интернета (выхода в мировую сеть) уже невозможно сделать ни одной современной разработки.

Цитата
Сделать отдельную машину с интернетами, изолированную от других.

Полагаю, что у вас в конторе именно так и сделано biggrin.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Oct 3 2017, 06:30
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(__inline__ @ Oct 3 2017, 08:29) *
С удовольствием девелопил бы и на Windows 98, но есть причины, по которым это сделать теперь невозможно:

Используйте reactos или KolibriOS

Цитата(__inline__ @ Oct 3 2017, 08:29) *
В анальные закрома уходят Ассемблер и Си, зато привествуется Си Диез и скриптовые языки, ну никак не предназначенные для программирования контроллеров!

Да ладно вам, никто никуда не уходит, просто массовке стали доступны простые решения, вот и набивают бесполезную массу. В основе-то всё-равно c и asm sm.gif

Цитата(__inline__ @ Oct 3 2017, 08:29) *
Ситуация меняется, когда производители этих Application Processor-ов СОЗНАТЕЛЬНО ПРЯЧУТ ту самую фундаментальную информацию для работы на low level :

Проблема в том, что эти процессоры стали настолько сложными, что сами авторы не могут сходу сказать что произойдёт если изменить какой-то регистр настройки - то ли перегреется, то ли "кирпич" получится.... У них техподдержка умрет отвечая на вопросы типа "я тут записал куда-то 0xFFЕ и у меня не работает ЭКРАН, что делать?"
Поэтому для конечных пользователей создаются готовые профили настроек, проверенные вдоль и поперек, а избранным дается доступ к их изменению и некоторые описания.
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 3 2017, 07:22
Сообщение #51


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(__inline__ @ Oct 3 2017, 04:29) *
С удовольствием девелопил бы и на Windows 98, но есть причины, по которым это сделать теперь невозможно:

Ну ещё вспомнил, что видел скрипт на Питоне, который мигает лампочками на Raspberry Pi. Это клиника скажу я вам.... !
В анальные закрома уходят Ассемблер и Си, зато привествуется Си Диез и скриптовые языки, ну никак не предназначенные для программирования контроллеров!


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

По поводу писанины под питоном - это еще ерунда, посмотрите все типы извращения, которые предлагают фанатики под вин 10идиотiot biggrin.gif В ходу виртуальные светодиоды из облачных пулов устройств...
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 07:33
Сообщение #52


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(mantech @ Oct 3 2017, 10:22) *
В ходу виртуальные светодиоды из облачных пулов устройств...

Уверен, что точно также хихикали программеры в машинных кодах/асм над С-программерами sm.gif Времена не меняются
Но время расставило все на свои места - кто из них не успел запрыгнуть в "поезд прогресса", тот и остался в забвении в прошлом на своих архаичных железках.
В свое время программеры под голой VS хихикали над сырыми .NET 1.0 и JAVA ... Где теперь те "программеры" ? ...
Кто из них до сих пор хихикает, либо уже спились, либо сидят в гос-конторах, поскольку всем остальным они уже бесполезны sm.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 3 2017, 07:52
Сообщение #53


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Эти ваши си-диезы, го и прочий шлак до сих пор так шлаком и остался! Ни один вменяемый человек не будет что-нибудь серьезное на этом писать! А уж ядро ОС только на С и пишется: как 30 лет назад, так и сейчас, и в ближайшие 30 лет!
Для С++ место только в узкой нише GUI'шного софта и высокоуровневых библиотек, где его плюшки имеют смысл.
Всякие пхытоны-перлы так и остались фигней для развлечения.
А ассемблер до сих пор используется — но уже как вставки. Писать на чистом ассемблере нецелесообразно из-за его низкоуровневщины, С же — очень высокоуровневый язык, и его за глаза на все случаи жизни хватает.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 08:00
Сообщение #54


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата
Однако, в настоящее время без интернета (выхода в мировую сеть) уже невозможно сделать ни одной современной разработки.

Почему?
Кто мешает использовать два компа - один для выкачивания документации, связи с другими разработчиками, второй - на нём софт и разработка.

Цитата
Используйте reactos или KolibriOS

Последнюю даже пробовал устанавливать и работать.
Проникся уважением (к ОС и её разработчикам).
Была даже идея портировать под KOS свои наработки в виде эмуляторов (сейчас там только NES и GB©), но пока в приоритете - создание своей игровой платформы.

Цитата
Проблема в том, что эти процессоры стали настолько сложными, что сами авторы не могут сходу сказать что произойдёт если изменить какой-то регистр настройки - то ли перегреется, то ли "кирпич" получится.... У них техподдержка умрет отвечая на вопросы типа "я тут записал куда-то 0xFFЕ и у меня не работает ЭКРАН, что делать?"

Техподдержка - это для дятлов.
Потому что :
- внятного от неё ничего не услышишь
- всегда удается разрулить проблему самостоятельно, не дожидаясь запаздалого ответа от ТП
- те кто обращается в ТП, практически все дятлы sm.gif
- ну и в ТП как правило сидят одни ТП sm.gif)))

На счёт сложности тоже спорный вопрос.
Вот что реально сложного на моей практике выпало - это программирование VGA-регистров видеокарты для установки HiRes разрешений с большой цветностью BPP с нестандартными длиной и шириной кадра с логической шириной кадра отличающейся от физической, с изменением частоты обновления экрана от 80 Гц и выше(до 130 Гц).
Гемор ещё тот: программирование более 50 регистров видеокарты.
Вот это я понимаю - сложно.

А дёргнуть флаги разрешения клоков на тот же SPI, установка частоты ядра-памяти , установка кеширования данных через MMU с прямой трансляцией адресов - это пустяк по сравнению с задачей выше.

Ну и разве что в кирпич можно превратить контроллер, если порт настроить на вывод и замкнуть его на питание или землю, думая что порт на вводе (кнопка).
Ну или FUSE сорвать для кварца или SPI-программатора. Но это лечится.

Цитата
Поэтому для конечных пользователей создаются готовые профили настроек, проверенные вдоль и поперек, а избранным дается доступ к их изменению и некоторые описания.

Для конечных пользователей - готовые устройства: просим любить и пользоваться.
Отладочные платы - для разработчиков, господа в белых воротничках, извольте открыть доки и описать в SDK как программируется весь набор периферии.

А то получается: ключевые сотрудники в Китае на гитхабе постят дистры Линукса, описывая в группе Гугл о том что SDK они дать не могут, а дистр Линкса - запросто.
Тоесть всё через задницу: хотите SDK - выколупывайте его в Линуксе! А отдельно мы вам его не дадим!
Ну и делать нечего, стал разбираться и понял, что в Линуксе всё спрятано в папках по функциональному назначению:
- видео
- аудио
- порты
- остальные подистемы....
- и там куча сорцов на железки разных производителей, включая то что нужно.
Но разобраться, пропустить через себя и осознать это - нужно времени намного больше, чем время на освоение и осмысление отдельного SDK. sm.gif

Ну и в интернете под Линукс много чего интересного есть - вплоть до дисассемблированного загрузчика, по тексту которого можно понять:
- куда указывает стек
- в какой адрес памяти кладётся программа boot0 (spl)
- какая периферия задействуется
- в каком режиме процессор (супервизор или юзер)
- какие байты в хедере загрузчика важны (сигнатура, контрольная сумма, размер)
- и многое другое ЧТО ПРОСТО ОБЯЗАНО БЫТЬ В ДАТАШИТЕ (в Technical Reference)

Цитата
В ходу виртуальные светодиоды из облачных пулов устройств...

sm.gif как мне тут сказал один знакомый по этому поводу: "... гнойник рано или поздно лопнет ..."

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

Это 95-я глючила, 98-я только вешалась намертво, если что-то забыть важное сделать.

Зато в 98-й винде возможно перейти из DOS-программы в нулевое кольцо по такой схеме: DOS => DOS + DPMI => Ring 0.
Было удивительно написать такую вещь как while(inp(0x60)!=1){}; и созерцать глобальную заморозку всех задач и ядра винды, пока не будет нажата клавиша Esc sm.gif
Ну или рисовать точки не в окне приложения, а с самого верхнего левого угла экрана монитора sm.gif
И это всё через Low Level в ДОС-программе, а не через GDI или Direct Draw !

Сообщение отредактировал __inline__ - Oct 3 2017, 08:08
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 08:01
Сообщение #55


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Эдди @ Oct 3 2017, 10:52) *
Эти ваши си-диезы, го и прочий шлак до сих пор так шлаком и остался!
Ни один вменяемый человек не будет что-нибудь серьезное на этом писать!

Не переживайте вы так, учиться никогда не поздно sm.gif
Сложно другое - начать (сужу по себе) wink.gif

Цитата
А уж ядро ОС только на С и пишется: как 30 лет назад, так и сейчас, и в ближайшие 30 лет!

Ну-ну ... видать все только и делают, что пишут ядра ОС. Ведь больше-то заняться нечем biggrin.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 3 2017, 08:13
Сообщение #56


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Forger @ Oct 3 2017, 10:33) *
Уверен, что точно также хихикали программеры в машинных кодах/асм над С-программерами sm.gif Времена не меняются
Но время расставило все на свои места - кто из них не успел запрыгнуть в "поезд прогресса", тот и остался в забвении в прошлом на своих архаичных железках.
В свое время программеры под голой VS хихикали над сырыми .NET 1.0 и JAVA ... Где теперь те "программеры" ? ...
Кто из них до сих пор хихикает, либо уже спились, либо сидят в гос-конторах, поскольку всем остальным они уже бесполезны sm.gif


Хихикали или нет - не важно. Есть какой-то уровень, до которого нужно дойти, и быть на нем до тех пор, пока не дойдем до чего-то по-настоящему нового и адекватного, на сегодня - это уровень Си, наиболее универсального средства программирования. "Особо одаренные" могут изобретать что угодно, но большинство адекватных продолжает им пользоваться...
JAVA тоже имеет место быть, но только в случае разноплатформенного использования. Для всяких дотнетов тут места нет от слова вообще...

Сообщение отредактировал mantech - Oct 3 2017, 08:14
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 08:14
Сообщение #57


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Эдди @ Oct 3 2017, 07:52) *
Эти ваши си-диезы, го и прочий шлак до сих пор так шлаком и остался! Ни один вменяемый человек не будет что-нибудь серьезное на этом писать! А уж ядро ОС только на С и пишется: как 30 лет назад, так и сейчас, и в ближайшие 30 лет!
Для С++ место только в узкой нише GUI'шного софта и высокоуровневых библиотек, где его плюшки имеют смысл.
Всякие пхытоны-перлы так и остались фигней для развлечения.
А ассемблер до сих пор используется — но уже как вставки. Писать на чистом ассемблере нецелесообразно из-за его низкоуровневщины, С же — очень высокоуровневый язык, и его за глаза на все случаи жизни хватает.

Так я не являюсь сторонником Си Диеза и прочих вещей в нише микроконтроллеров. Они совершенно для других вещей предназначены.
А их внедрение популяризуется из-за большого процента "админов" в IT-шной массе. А они как правило, больше скриптовыми языками владеют, на то и расчёт чтоб с них срубить бабки.

По части программирования ядер ОС на Си... Много ли Си-компилеров, способные дать чистый бинарник с любого ORG и без затирания регистров?
На счёт GCC не уверен, а вот про Open Watcom C слыхал, что можно сделать бинарник без привязки к ОС и clib.

Ну и планировщик задач (Tasker) пишится всёравно на Ассемблере, так как нужно очень чисто пушить и попить контекст задач.
Ковырял исходники ucos под ARM7 видел как это всё сделано.
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 3 2017, 08:16
Сообщение #58


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Forger @ Oct 3 2017, 11:01) *
Ну-ну ... видать все только и делают, что пишут ядра ОС. Ведь больше-то заняться нечем


Писателям игрушек для веба это сложно понять, но тут вопрос о программировании на МК. rolleyes.gif
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 08:21
Сообщение #59


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(mantech @ Oct 3 2017, 08:13) *
Хихикали или нет - не важно. Есть какой-то уровень, до которого нужно дойти, и быть на нем до тех пор, пока не дойдем до чего-то по-настоящему нового и адекватного, на сегодня - это уровень Си, наиболее универсального средства программирования. "Особо одаренные" могут изобретать что угодно, но большинство адекватных продолжает им пользоваться...
JAVA тоже имеет место быть, но только в случае разноплатформенного использования. Для всяких дотнетов тут места нет от слова вообще...

Всему своё время и место.
Можете называть меня ОЛД-фагом, но я не чураюсь машинных кодов, например в ассемблерных вставках: часто бывает что встроенный ассемблер в Си каких-то инструкций не поддерживает, а оформлять дополнительный сорец с ассемблером лень, машинные коды выручают sm.gif

На счёт JAVA раз заговорили, упомяну как сделаны Ведроиды: на ARM процессор ставится виртуальная машина ARM + JAVA : => получается двойная эмуляция!
Зачем?
Учитывая, что есть специальные ARM-ы, с аппаратной поддержкой JAVA (Jazelle вроде бы?). Налицо - говнокодостроение.

JAVA может быть полезна временно, когда нет порта какого-то приложения на целевой платформе, ну или в случае закрытого кода приложения.
В остальных случаях - JAVA - тормоз.
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 08:23
Сообщение #60


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(mantech @ Oct 3 2017, 11:16) *
Писателям игрушек для веба это сложно понять, но тут вопрос о программировании на МК. rolleyes.gif

Для "веба" не пишу, но прекрасно их понимаю, и не имею ничего против развития и прогресса.
Если речь про программирование применительно к "бытовым" МК, т.е. под конкретное узкоспециализированное железо, то пока что дальше C/C++ нет смысла соваться. Где возможно, я предпочитаю С++.
В более серьезных железках как минимум неразумно лишь одним "молотком и ножовкой" делать все, начиная от портирования ОС, заканчивая сложными клиентскими приложениями.
Ведь никому адекватному никогда не придёт в голову идея писать приложения для смартфона целиком на asm/С.

С другой стороны, существует известная поговорка "каждый дро%%т как хочет" sm.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 3 2017, 08:25
Сообщение #61


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(__inline__ @ Oct 3 2017, 11:21) *
JAVA может быть полезна временно, когда нет порта какого-то приложения на целевой платформе, ну или в случае закрытого кода приложения.
В остальных случаях - JAVA - тормоз.


Вы не учитываете преимущество мультиплатформенного кода, да он более тормозной по сравнению с компилятором, но это не так существенно. Особо тяжелые функции выполняются в маш. кодах, да и не всегда критично быстродействие. Но возможность запустить одно и тоже приложение под принципиально разными осями и процессорами, того стоит..
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Oct 3 2017, 09:15
Сообщение #62


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(__inline__ @ Oct 3 2017, 15:00) *
Ну и разве что в кирпич можно превратить контроллер, если порт настроить на вывод и замкнуть его на питание или землю, думая что порт на вводе (кнопка).
Ну или FUSE сорвать для кварца или SPI-программатора. Но это лечится.

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

Цитата(__inline__ @ Oct 3 2017, 15:00) *
- и многое другое ЧТО ПРОСТО ОБЯЗАНО БЫТЬ В ДАТАШИТЕ (в Technical Reference)

Угу, и получить эдак 10 томов по 500 страниц каждый. Да они минимум год только писать это будут, а потом каждый месяц выпускать по дополнительному тому "исправлений и дополнений" sm.gif
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Oct 3 2017, 09:20
Сообщение #63


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
Писателям игрушек для веба это сложно понять, но тут вопрос о программировании на МК.

Тестовая среда и всяческие эмуляторы куда быстрее, приятнее и нагляднее пишутся на каком-нибудь протопыхе (perl) или гвидопыхе (python). Да и куча полезного софта управляется с помощью Tcl. Модели опять же на гвидопыхе с numpy пишутся куда быстрее, чем на C или крестах. Есть, конечно, MATLAB, но он стоит сотни нефти, но есть и альтернативы - SciLab, Octave, Axiom и Sagemath (которая чуть более, чем полностью - Pyhton).

Ну и во всём этом есть одна загвоздка - как правило, те, кто знают Python, perl, Java, знают так же и C. При этом странно, что те, кто знает только C так кичатся своим неприятием других инструментов.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 10:07
Сообщение #64


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



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

Ну а ТП, там же не телепаты сидят - ей-то откуда знать что вы натворили с чипом и какие могут быть последствия?
Ну и как можно спалить чип неверной записью в регистры? (про порты ввода/вывода, фьюзы и ПЛИСы - не рассказывать!)

Цитата
Угу, и получить эдак 10 томов по 500 страниц каждый. Да они минимум год только писать это будут, а потом каждый месяц выпускать по дополнительному тому "исправлений и дополнений

Так из этих 500 страниц каждому понадобятся свои 50 страниц!
Например, для моих применений - видеокодек не нужен, так же как и USB и Эзернет.
Мне надо GPIO, SPI, TF, Video Out, высокая производительность ядра over 1GHz - остальное не важно!
Другим наоборот.
Но никто не заставляет читать все 500 страниц!

Цитата
Ну и во всём этом есть одна загвоздка - как правило, те, кто знают Python, perl, Java, знают так же и C

Это лишь ваше мнение, которое не является правилом - не обобщайте.
Ну и знания одного Си недостаточно для программирования контроллеров. Нужны ещё и базовые знания как работает железо и как его программировать.

Сообщение отредактировал __inline__ - Oct 3 2017, 10:09
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Oct 3 2017, 10:14
Сообщение #65


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
Это лишь ваше мнение, которое не является правилом - не обобщайте.

Нет. Это мнение не моё, а весьма большого количества людей. Которые, кстати, не судят всех программистов на Си по осилившим только хэллоуворлд, ну или мигание светодиодом, в случае микроконтроллеров. Понятно, что порог входа в пыхоплеяду ниже, чем в Java/C, поэтому, в абсолютном значении monkey-coder'ов среди них, конечно, больше. Но не в процентном.
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Oct 3 2017, 10:37
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(__inline__ @ Oct 3 2017, 17:07) *
Так из этих 500 страниц каждому понадобятся свои 50 страниц!
Мне надо GPIO, SPI, TF, Video Out, высокая производительность ядра over 1GHz - остальное не важно!

Хе-хе, попробуйте запустить простейший STM32 прочитав 50 страниц. А в больших чипах взаимосвязей и зависимостей на порядки больше.
Go to the top of the page
 
+Quote Post
_3m
сообщение Oct 3 2017, 10:48
Сообщение #67


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(__inline__ @ Oct 3 2017, 13:07) *
Ну и как можно спалить чип неверной записью в регистры? (про порты ввода/вывода, фьюзы и ПЛИСы - не рассказывать!)

Легко! Пишете неправильное значение в регистр управления питанием и один из ip блоков в чипе подпаливается.
Похоже вы сложных чипов еще не видели.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 10:52
Сообщение #68


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(_3m @ Oct 3 2017, 10:48) *
Легко! Пишете неправильное значение в регистр управления питанием и один из ip блоков в чипе подпаливается.
Похоже вы сложных чипов еще не видели.

Ой, да. Забыл добавить сюда управление напряжением питания ядра через ШИМ. Типа как в Блекфинах. biggrin.gif

Ну это ж детский сад, если по этому поводу писать в ТП sm.gif
Go to the top of the page
 
+Quote Post
Obam
сообщение Oct 3 2017, 11:01
Сообщение #69


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата
Ну и как можно спалить чип неверной записью в регистры? (про порты ввода/вывода, фьюзы и ПЛИСы - не рассказывать!)

Можно мои 5 коп добавить? Спасибо (;
Не буду про фьюзы…
Ошибочно отключенный (неверной записью в регистры) JTAG - это всё равно что спаленный чип (;


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 11:06
Сообщение #70


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Obam @ Oct 3 2017, 14:01) *
Ошибочно отключенный (неверной записью в регистры) JTAG - это всё равно что спаленный чип (;

Если JTAG отключается лишь через прошивку (софтварно), то дело поправимое - нужно лишь подключить к отладчику цепь сброса МК.
А вот если чип залочен необратимо (у STM32 такое возможно), то чип - на помойку.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 11:10
Сообщение #71


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Forger @ Oct 3 2017, 11:06) *
Если JTAG отключается лишь через прошивку (софтварно), то дело поправимое - нужно лишь подключить к отладчику цепь сброса МК.
А вот если чип залочен необратимо (у STM32 такое возможно), то чип - на помойку.

ЕМНИП отладку у STM32F4xx можно делать через SWD + STM32 ST-LINK Utility
Go to the top of the page
 
+Quote Post
Obam
сообщение Oct 3 2017, 11:31
Сообщение #72


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(__inline__ @ Oct 3 2017, 15:10) *
ЕМНИП отладку у STM32F4xx можно делать через SWD + STM32 ST-LINK Utility

Дык SWD на выводы JTAGа выведен

Тему в "Средства проектирования" надо по-хорошему

Сообщение отредактировал Obam - Oct 3 2017, 11:35


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 3 2017, 11:52
Сообщение #73


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Forger @ Oct 3 2017, 11:23) *
Для "веба" не пишу, но прекрасно их понимаю, и не имею ничего против развития и прогресса.
Если речь про программирование применительно к "бытовым" МК, т.е. под конкретное узкоспециализированное железо, то пока что дальше C/C++ нет смысла соваться. Где возможно, я предпочитаю С++.

Я и под веб нет-нет, да делю что-то (веб-морды для меня более предпочтительны, нежели содомия со standalone GUI), вот там, к сожалению, одним только С не обойтись, приходится еще жабоскрипт использовать и на html разметку делать, но это фигня — один раз помучился, и готово!
Микроконтроллеры — понятное дело, там только чистый С. Я, помучившись с SPL и opencm3 на STM32, понял, что ну его нафиг — эти чужие кривые библиотеки, надо на сниппеты ориентироваться и не долбить себе мозг всякой чушью.
Приложения для связи между компьютером и МК — на чистом С. На нем же клиент-серверные вещи (демоны, логгеры, интерфейсы и т.д., и т.п.).

В общем, С свою актуальность не потеряет еще долго.

Цитата(one_eight_seven @ Oct 3 2017, 12:20) *
Ну и во всём этом есть одна загвоздка - как правило, те, кто знают Python, perl, Java, знают так же и C. При этом странно, что те, кто знает только C так кичатся своим неприятием других инструментов.

Ни разу не встречал тех, кто прекрасно знает одновременно пхытон, перл, жабку и С! Это ж вообще вещи разных классов! Надо быть одновременно и гуманитарием, и технарем, чтобы умудриться все это выучить, а самое главное — понимать!!!

Цитата(HardEgor @ Oct 3 2017, 13:37) *
Хе-хе, попробуйте запустить простейший STM32 прочитав 50 страниц.

Для мигания светодиодом без таймера нужно будет даже меньше прочесть ☺
Все равно, даже если пользоваться чужими библиотеками, надо будет читать даташит по используемой периферии. Но в случае библиотек, нужно еще скудную документацию к ним читать + ковыряться постоянно в исходниках этих библиотек (мало ли что там индусы наговнокодили — встречал я такие приколы)! Так какой смысл тащить лишнее? Лучше самому постепенно накапливать базу сниппетов, а затем по мере необходимости брать уже готовые куски кода.

Сообщение отредактировал Эдди - Oct 3 2017, 11:49
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 11:52
Сообщение #74


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(HardEgor @ Oct 3 2017, 10:37) *
Хе-хе, попробуйте запустить простейший STM32 прочитав 50 страниц. А в больших чипах взаимосвязей и зависимостей на порядки больше.

Зачем мне простейший, когда совсем недавно портировал кодек MELP800 на STM32F405 ?
Bare Metal, конечно.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 3 2017, 11:54
Сообщение #75


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Obam @ Oct 3 2017, 14:01) *
Ошибочно отключенный (неверной записью в регистры) JTAG - это всё равно что спаленный чип (;

Что за ерунда? Я, например, вообще не использую ни JTAG, ни SWD — все STM32 шью через бутлоадер. Это намного удобней, да и не нужно лишних устройств присобачивать; а висящий на UART1 переходник после прошивки используется для отладки.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 11:56
Сообщение #76


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Эдди @ Oct 3 2017, 11:52) *
Лучше самому постепенно накапливать базу сниппетов, а затем по мере необходимости брать уже готовые куски кода.

Вот такую базу у меня есть желание создать под один из современных ARM-ов, типа базового API для работы с нужными узлами.
Нечто похожее сделал для ADSP BlackFin BF532/533 и для STM32F405 и для AT91RM9200 - с кешами, с MMU, на полной скорости.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 3 2017, 11:59
Сообщение #77


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Forger @ Oct 3 2017, 14:06) *
А вот если чип залочен необратимо (у STM32 такое возможно)

Это как? Неужто его можно залочить так, что даже бутлоадер не примет перезапись флеша? А если стереть бутлоадер, остается еще возможность стереть через SWD/JTAG при должной сноровке (жамкаем reset, а отпуская жмем enter в командной строке, где уже вбили команду стирания флеша).

Цитата(__inline__ @ Oct 3 2017, 14:56) *
Вот такую базу у меня есть желание создать под один из современных ARM-ов

Под STM32F0, кстати, есть уже готовые сниппеты от самих ST. Жаль, что под другие линейки они не потрудились подобное накатать.
С STM8 я сразу начал работать в стиле "пошли все нафиг, я даже заголовочный файл с дефайнами портов сам напишу", накапливая сниппетобазу. А вот с STM32, дурак, сразу не подумал так сделать. В итоге у меня есть одна интересная заготовка под F407 на дурацком SPL + еще куча полезных вещей на opencm3, все руки не дойдут переписать без библиотек. Позже стал осваивать STM32F0, там уже на грабли не натыкался — сразу пошел правильной дорогой.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 12:03
Сообщение #78


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Эдди @ Oct 3 2017, 11:54) *
Что за ерунда? Я, например, вообще не использую ни JTAG, ни SWD — все STM32 шью через бутлоадер. Это намного удобней, да и не нужно лишних устройств присобачивать; а висящий на UART1 переходник после прошивки используется для отладки.

SWD очень сильно помог мне, когда нужно было сдампить большой буфер данных из памяти контроллера, которые создал кодек речи. По UART будет дольше и это - дополнительная микросхема согласования лог. уровней + терминал. А через SWD - три проводка + встроенный программатор/отладчик на плате STM Discovery на USB + Utilites + окно в котором всё видно!

Цитата(Эдди @ Oct 3 2017, 11:59) *
Под STM32F0, кстати, есть уже готовые сниппеты от самих ST. Жаль, что под другие линейки они не потрудились подобное накатать.

А вот под V3s нет sm.gif
Только в составе Линукса sm.gif
Поэтому лепить своё с оглядкой на Линукс biggrin.gif

Для STM32F... вообще проблем быть не должно: Keil ARM генерит достаточно внятный стартап с пресетами + куча статей на русском языке!
Ну разве что когда код в RAM исполнять - не забыть раздефайнить перенос таблицы векторов прерываний (если они используются)

Ну и там же CMSYS со всеми объявленными хедерами - регистры, константы, битовые маски.

А HAL + пресеты STM Cube - зло ))) Разве что для раскидки пинов использовать, куб идёт только в блевистах при установленной JRE, поэтому приходится идти в гости к знакомым.
Тяжела нынче жизнь аппаратчика sm.gif Приходится искать альтернативные пути, не нарушая свои принципы...

Сообщение отредактировал __inline__ - Oct 3 2017, 12:14
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 12:09
Сообщение #79


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Эдди @ Oct 3 2017, 14:59) *
Это как? Неужто его можно залочить так, что даже бутлоадер не примет перезапись флеша?

Можно. Да так, что ядро отладки напрочь отключается, если прошивка не финальная, то камень в помойку. RTFM sm.gif

Цитата
А если стереть бутлоадер, остается еще возможность стереть через SWD/JTAG при должной сноровке (жамкаем reset, а отпуская жмем enter в командной строке, где уже вбили команду стирания флеша).

Штатный бутлодырь у STM32 стереть невозможно. После тотальной залочки им уже нельзя изменить прошивку, хотя связь с ним все еще возможна.
Если же подход более профессиональный - самодельный бутлодырь, то в этом случае даже с тотальной залочкой обновление прошивки возможно средствами этого самописного бутлодыря, но сам бутлодырь уже никак не заменить.
Поэтому тотальную залочку у STM32 следует включать только в самом финале выпуска изделий в серию. Собственно для этого он и был создан.

Цитата
я даже заголовочный файл с дефайнами портов сам напишу
Вот уж действительно заняться нечем cranky.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 12:20
Сообщение #80


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Цитата(Forger @ Oct 3 2017, 12:09) *
Вот уж действительно заняться нечем cranky.gif

иногда такой подход оправдан.
как правило дефайны регистров делаю т через указатели и к ним обращаются так: *pGPIO_ISR=0x000, а хочется так: GPIO_ISR=0x0000.
вот и приходится (volatile unsigned long int*) переправлять на *(volatile unsigned long int*) и отсекать *p
Ну это уже мелочи.
И кстати, из опыта, некоторые регистры отсутствуют в стандартных хедерах на STM32, приходилось дописывать самому.
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 12:24
Сообщение #81


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(__inline__ @ Oct 3 2017, 15:20) *
как правило дефайны регистров делаю т через указатели и к ним обращаются так: *pGPIO_ISR=0x000, а хочется так: GPIO_ISR=0x0000.
вот и приходится (volatile unsigned long int*) переправлять на *(volatile unsigned long int*) и отсекать *p

Дык, в штатном дейфайне на STM это уже сделано, через структуры. Все просто и очевидно.
Но если изобретение велосипеда - хобби, то это все меняет sm.gif



--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 12:30
Сообщение #82


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Кстати, вот список процессов в WinXP от компа с которого пишу:

Прикрепленное изображение


Обратите внимание - как мало процессов. Говно практически вычищено. Очень сомневаюсь, что под блевистами (windows vista,7,8,9,10,...) такое возможно.

Вот это действительно конфа под которой приятно работать, так как всё чисто.

И вирусы поймать можно только если запустить левый exe-шник скачанный из интернета.
Потому что Java, Silverligtht, Flash, RPC выпилены, порты закрыты (кроме нужных)

Цитата(Forger @ Oct 3 2017, 12:24) *
Дык, в штатном дейфайне на STM это уже сделано, через структуры. Все просто и очевидно.
Но если изобретение велосипеда - хобби, то это все меняет sm.gif

Структурное описание регистров порой генерит слишком большой код и снижает понимание процессов, происходящих в аппаратуре.
Но это лишь моё мнение.

Сообщение отредактировал __inline__ - Oct 3 2017, 12:27
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 12:31
Сообщение #83


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(__inline__ @ Oct 3 2017, 15:26) *
Обратите внимание - как мало процессов. Говно практически вычищено.
Вот это действительно конфа под которой приятно работать, так как всё чисто.

Гы biggrin.gif Яркий пример хронической паранойи и суперпедантизма.
Либо вам, просто, заняться больше нечем laughing.gif

Цитата
Структурное описание регистров порой генерит слишком большой код
Это так, если компилятор взят из 90х

Сообщение отредактировал Forger - Oct 3 2017, 12:32


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 3 2017, 12:57
Сообщение #84


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(__inline__ @ Oct 3 2017, 15:03) *
Для STM32F... вообще проблем быть не должно: Keil ARM генерит достаточно внятный стартап с пресетами + куча статей на русском языке!

Я эту фигню не использую, во-первых, линуксоид, во-вторых, зачем мне под виртуалкой гонять ворованный софт, когда есть родное? IDE — geany (правда, я его тупо как редактор использую), а дальше все при помощи make делается (от компиляции до загрузки).

Цитата(Forger @ Oct 3 2017, 15:09) *
Вот уж действительно заняться нечем cranky.gif

Для STM8 это был единственный вариант, т.к. готового заголовочного файла в нормальном формате со всеми дефайнами и под лицензией, совместимой с GPLv3, я не нашел!

Цитата(Forger @ Oct 3 2017, 15:24) *
Дык, в штатном дейфайне на STM это уже сделано, через структуры.

Что такое "штатный дефайн STM"? Не встречал. Скажем, под F0 я выдрал нужное из сниппетов от ST. А вот когда опять вернусь к F1, придется, видимо, из opencm3 выдирать.

Цитата(__inline__ @ Oct 3 2017, 15:30) *
Структурное описание регистров порой генерит слишком большой код

Я тоже так думал, пока не проверил. Код получается абсолютно таким же, как и без структур. Все раскрывается на стадии препроцессора gcc.
Конечно, выглядит по-ублюдски, но сойдет.

P.S. А вот под STM8 так делать нельзя, потому как sdcc не оптимизирует код вообще никак! А кроме sdcc компиляторов под STM8 нет, к сожалению. Благо, этот МК не используется настолько часто, как более приятные STM32.

Сообщение отредактировал Эдди - Oct 3 2017, 12:58
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 3 2017, 13:14
Сообщение #85


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Эдди @ Oct 3 2017, 15:57) *
Что такое "штатный дефайн STM"? Не встречал.

После установки голого KEIL, все дефайны/датышиты/профили и т.п. идут в виде отдельных PACK-ов. Их можно скачать без самого keil, и переименовать в zip, открыв содержимое.
Там все нужные дефайны.
Поскольку от HAL/SPL/CUBE отказался, сам пользую такое решение.
Аналогично у ARM сделано для других процов.

В шапке каждого дефайна вот такой текст (на примере STM32F0xx_DFP):

Код
  * @file    stm32f0xx.h
  * @author  MCD Application Team
  * @version V2.2.3
  * @date    29-January-2016
  * @brief   CMSIS STM32F0xx Device Peripheral Access Layer Header File.


зы. Keil платный, отладчики от SEGGER тоже платные.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 3 2017, 16:44
Сообщение #86


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(__inline__ @ Oct 3 2017, 15:30) *
Обратите внимание - как мало процессов. Говно практически вычищено. Очень сомневаюсь, что под блевистами (windows vista,7,8,9,10,...) такое возможно.


А торрент зачем? biggrin.gif
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 4 2017, 01:40
Сообщение #87


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Уважаемые mantech и другие пользователи!

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

Давайте не будем превращать Форум Разработчиков Электроники в ещё один форум юристов!
А то складывается такое впечатление, что некоторых кто-то напугал.
Например, пишете про Keil - какой он у вас или упоминаете его в контексте крякнутого. Не нужно этого. Зачем и перед кем оправдыватесь?

Давайте лучше делиться опытом в разработке программ для ARM ! rolleyes.gif
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 4 2017, 05:15
Сообщение #88


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(__inline__ @ Oct 4 2017, 04:40) *
Давайте лучше делиться опытом в разработке программ для ARM ! rolleyes.gif

С поправкой: в среде свободного программного обеспечения!
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 4 2017, 05:28
Сообщение #89


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Эдди @ Oct 3 2017, 19:57) *
А кроме sdcc компиляторов под STM8 нет, к сожалению.

Не надо ля-ля. Есть IAR.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 4 2017, 06:26
Сообщение #90


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(jcxz @ Oct 4 2017, 08:28) *
Не надо ля-ля. Есть IAR.

Я говорю про свободные компиляторы, а не мерзопакостную мастдайную ворованную дрянь!
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 4 2017, 06:41
Сообщение #91


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Эдди @ Oct 4 2017, 09:26) *
мерзопакостную мастдайную ворованную дрянь
Точно также так утверждают слесари с ножовкой по металлу, но то тех пор, пока не познали УШМ (болгарку) biggrin.gif
Однако, в ряде простых случаев ножовкой пользоваться все же удобнее ...


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 4 2017, 07:48
Сообщение #92


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Эдди @ Oct 4 2017, 09:26) *
мерзопакостную мастдайную ворованную дрянь!


У вас есть рабочая сборка под кортекс А9 и А7 на каком-нить эклипсе с вашим любимым гнушным компилятором, чтоб я смог установить ее к себе на машину (32х битную, если что) и не плясать неделями с бубном чтоб ее настроить, прописать кучу конфигов, либ и пр...? Может поделитесь? laughing.gif
А если нет - то оставьте это мнение при себе, в моем понимании инструмент должен быть прежде всего удобным, чтоб человек мог заняться собственно программированием своей задачи, а не мучиться в настройках этого инструмента.

Сообщение отредактировал mantech - Oct 4 2017, 07:50
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 4 2017, 08:07
Сообщение #93


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Эклипсой не пользуюсь. Что нужно, писал у себя в ЖЖ. В принципе, если не разрабатывать под Cortex-M0, то хватит стандартного тулчейна из реп. Пользуюсь гентой. Вот для STM32F0 пришлось тащить тулчейн с оф. сайта (т.к. в "родном" тулчейне деление не работало).
В моем понимании тоже инструмент прежде всего должен быть удобным. Ну и не смущать совесть того, кто этим инструментом пользуется. Потому-то я уже лет 15 мастдайку не использую — в ней невозможно работать, 90% времени тратишь на лишние телодвижения.

И да, зачем в 2017 году работать на 32-битной машине 20-летней давности?

Сообщение отредактировал Эдди - Oct 4 2017, 08:07
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 4 2017, 08:35
Сообщение #94


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Эдди @ Oct 4 2017, 11:07) *
И да, зачем в 2017 году работать на 32-битной машине 20-летней давности?


Потому, что она меня полностью устраивает rolleyes.gif
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 4 2017, 08:37
Сообщение #95


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Не представляю себе, даже... Меня домашний компьютер 5-летней давности с 4-ядерным процессором и 8ГБ оперативы напрягает иногда: запустишь kicad, а комп задумывается.. Или гентушку поставишь обновлять, и как-то оно долго, да еще и другие задачи подтормаживают. Хотя, интернет меня больше напрягает: дома висит старый зухелевский рутер, который на 3 потребителя никак не может честно разделить входящие почти 100Мбит, если торренты качаю, то больше никому интернета нет ☹
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 4 2017, 08:54
Сообщение #96


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Эдди @ Oct 4 2017, 11:37) *
Не представляю себе, даже... Меня домашний компьютер 5-летней давности с 4-ядерным процессором и 8ГБ оперативы напрягает иногда: запустишь kicad, а комп задумывается..


Надоело оффтопить здесь, конечно, но уж скажу, мой знакомый поставил в конторе у себя на 4хядернике с 8гигами, убунту и на ней кикад, при перетаскивании схемы, не маленькой, он "листает" ее, что оч. заметно. Я не знаю, что он не так сделал, установил кривые дрова на видюху или еще что-то, но на моей древней машине с ненавистной масдайкой, тот же кикад не тормозит нисколько. Просто, когда я ставлю масдайку на машину, трачу 30 мин на установку драйверов и не парюсь от слова вааще, в его случае, я даже не знаю что тут делать где-то искать дрова, собирать их самому или что еще... Да нафига мне это нужно, мне проект делать надо, а не в собиралки играть. Именно поэтому считаю, что свободный, читай, любительский софт никогда не будет конкурировать с профессиональным, т.к. делают его итузиасты в свободное время.
И еще на тему торможения - я никогда не использую рабочую машину для инета, да еще с открытием кучи вкладок в браузере, поэтому и не тормозит ничего, для инета есть рядом стоящий ноутбук.

Сообщение отредактировал mantech - Oct 4 2017, 08:57
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 4 2017, 09:03
Сообщение #97


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



ОК, все равно мне никогда психологию вендузятников не понять…
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 4 2017, 09:03
Сообщение #98


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Эдди @ Oct 4 2017, 11:37) *
Не представляю себе, даже... Меня домашний компьютер 5-летней давности с 4-ядерным процессором и 8ГБ оперативы напрягает иногда: запустишь kicad, а комп задумывается..

На всех современных компах узким местом является наличие HDD.
Поэтому достаточно лишь поставить SSD, хотя бы чисто под систему и установленный софт.
После этого даже откровенный хлам легко обгонит нормальный комп с обычным HDD!
Неоднократно подобное наблюдал. Рекомендую
Тогда не потребуется параноидальная чистка запущенных процессов, тонкий тюнинг системы и т. п. фетишизм wacko.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 4 2017, 09:09
Сообщение #99


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Forger @ Oct 4 2017, 12:03) *
Поэтому достаточно лишь поставить SSD, хотя бы чисто под систему и установленный софт.
После этого даже откровенный хлам легко обгонит нормальный комп с обычным HDD!


Поддерживаю, и добавить оперы по максимуму, после этого мой древний амдшный турион стал работать куда шустрее biggrin.gif

Цитата(Forger @ Oct 4 2017, 12:03) *
Тогда не потребуется параноидальная чистка запущенных процессов, тонкий тюнинг системы и т. п. фетишизм wacko.gif


Никогда этим не занимался, просто установлено только то, что нужно.
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 4 2017, 09:10
Сообщение #100


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(mantech @ Oct 4 2017, 12:09) *
Никогда этим не занимался, просто установлено только то, что нужно.

Этот камень был направлен не в ваш огород wink.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:41
Рейтинг@Mail.ru


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