|
GCC ARM - не имплементируются функции SIN, COS, arm-none-eabi |
|
|
|
Oct 1 2017, 07:34
|

Местный
  
Группа: Участник
Сообщений: 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, как решить проблему?
|
|
|
|
|
 |
Ответов
(1 - 99)
|
Oct 1 2017, 08:00
|
Гуру
     
Группа: Свой
Сообщений: 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. Попробуйте вот это.
|
|
|
|
|
Oct 1 2017, 08:40
|

Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Oct 1 2017, 08:47
|

Местный
  
Группа: Участник
Сообщений: 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 ?
|
|
|
|
|
Oct 1 2017, 08:57
|

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

|
Цитата(scifi @ Oct 1 2017, 08:49)  Спасибо!  Глянул: Цитата 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 Куда дальше рыть?
|
|
|
|
|
Oct 1 2017, 08:59
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(__inline__ @ Oct 1 2017, 11:57)  Куда дальше рыть? Цитата(scifi @ Oct 1 2017, 11:45)  Вероятно, придётся собирать тулчейн самостоятельно. Тот же линаро вроде бы публикует скрипты для сборки. Ещё рассказывают про buildroot и всё такое. Есть ещё Sysprogs, но я не знаю, есть ли там hardfloat.
|
|
|
|
|
Oct 1 2017, 09:11
|

Местный
  
Группа: Участник
Сообщений: 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 нет
|
|
|
|
|
Oct 1 2017, 09:14
|
Гуру
     
Группа: Свой
Сообщений: 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 нет Мыши плакали, кололись, но продолжали жрать кактус. Ну и используйте всё вышеупомянутое, кто же мешает?
|
|
|
|
|
Oct 1 2017, 09:18
|

Местный
  
Группа: Участник
Сообщений: 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 без привязки к контроллеру.
|
|
|
|
|
Oct 1 2017, 09:34
|

Местный
  
Группа: Участник
Сообщений: 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? (см. первый пост))
|
|
|
|
|
Oct 1 2017, 09:49
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(__inline__ @ Oct 1 2017, 12:34)  Подозреваю, что нет. Но я не дурак и вижу, что sin() и cos() по своему объёму не внушают быстродействия. А значит, не все ключи оптимизации задействованы или нужно другую либу math подключить. Вот я и хочу выяснить, есть ли более лучший вариант реализации или мне пасти нечего? Кому-то нужно быстродействие в ущерб точности, кому-то - точность в ущерб быстродействию. Не исключено, что та же glibc всё делает быстро, но это уже линух. А вот newlib, скорее, будет напирать на точность. Короче, сделайте свой синус, кто же мешает? Подсунуть свою функцию вместо библиотечной - дело нехитрое, ЕМНИП.
|
|
|
|
|
Oct 1 2017, 09:59
|

Местный
  
Группа: Участник
Сообщений: 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 Ну блин, нельзя же так  Я это понял как компилятор для сборки ARM- и MINGW- приложений... Под Линуксом... Качаю сейчас его, посмотрим. Это я тупой или линуксоиды слишком умные? Почему когда соприкасаешься с GCC, то он кроме негативных реакций ничего не вызываeт? ARM GCC, что и Кокос(cookox) - дерьмо полнейшее. Последний умер, правда.
Сообщение отредактировал __inline__ - Oct 1 2017, 09:56
|
|
|
|
|
Oct 1 2017, 10:09
|

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

|
Цитата(__inline__ @ Oct 1 2017, 13:03)  За ключи - спасибо!  Попробую! А про f в конце в курсе. Про "в курсе" из кусков кода видно небыло. Вот скрипты из моего проекта. тулчейн отсюда.
Сообщение отредактировал Genadi Zawidowski - Oct 1 2017, 10:15
|
|
|
|
|
Oct 1 2017, 10:14
|

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

|
Цитата(Genadi Zawidowski @ Oct 1 2017, 10:09)  Про "в курсе" из кусков кода видно небыло. Вот скрипты из моего проекта. Ещё раз - спасибо! Кстати, тот GCC что я скачал - не имеет утилиты make, как я буду по макам собирать - это загадка, сдела сейчас батник, но для больших программ так не годится. Больше всего меня убивает, что когда возишься с GNU, то пляска с докачкой дополнительных утилит и обвесами патчей - гарантирована! Такого нет ни в одной другой среде программирования, даже OpenWatcom по сравнению с GCC - это как небо и земля
|
|
|
|
|
Oct 1 2017, 10:23
|

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

|
Цитата(Genadi Zawidowski @ Oct 1 2017, 10:09)  Вот скрипты из моего проекта. тулчейн отсюда. У меня такой же тулчейн, последняя версия
|
|
|
|
|
Oct 1 2017, 10:26
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(__inline__ @ Oct 1 2017, 13:14)  Кстати, тот GCC что я скачал - не имеет утилиты make, как я буду по макам собирать - это загадка, сдела сейчас батник, но для больших программ так не годится. Можно скачать отсюда. Цитата(__inline__ @ Oct 1 2017, 13:14)  Больше всего меня убивает, что когда возишься с GNU, то пляска с докачкой дополнительных утилит и обвесами патчей - гарантирована! Это потому, что не под линухом. Там всё уже есть. И звените.
|
|
|
|
|
Oct 1 2017, 10:31
|

Местный
  
Группа: Участник
Сообщений: 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).
|
|
|
|
|
Oct 1 2017, 12:46
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(__inline__ @ Oct 1 2017, 12:18)  Мешает отсутствие альтернативы. С удовольствием писал бы в Keil ARM MDK, но там нет Coretex-A7 без привязки к контроллеру. Да ладно? То-то у меня сейчас проект под ИАР для кортекса А9, без привязки к конкретному процу. Просто отличие в том, что с привязкой там все параметры стартапа и линкера проставляются автоматом. Цитата(__inline__ @ Oct 1 2017, 13:14)  Больше всего меня убивает, что когда возишься с GNU, то пляска с докачкой дополнительных утилит и обвесами патчей - гарантирована! Такого нет ни в одной другой среде программирования, даже OpenWatcom по сравнению с GCC - это как небо и земля А как вы думали, почему за коммерческий софт просят не хилые бабки? В последнее время - совсем не хилые?? Есть куча времени и нервов - добро пожаловать в мир бесплатного софта, ищем бубен и начинаем плясать
|
|
|
|
|
Oct 1 2017, 12:53
|

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

|
Цитата(mantech @ Oct 1 2017, 12:46)  1) То-то у меня сейчас проект под ИАР для кортекса А9, без привязки к конкретному процу. Просто отличие в том, что с привязкой там все параметры стартапа и линкера проставляются автоматом. 2) А как вы думали, почему за коммерческий софт просят не хилые бабки? В последнее время - совсем не хилые?? Есть куча времени и нервов - добро пожаловать в мир бесплатного софта, ищем бубен и начинаем плясать  1) Как бы не фанат ИАРа. Мне бы Keil  Но в v.4 он не поддерживает Cortex-A7. Версия 5 у меня не идет (потому что ХРюн и 32 бита, ставить анальные зонды - блевисты 7,8, ,... нет желания). 2) Коммерческий софт лечится таблЭтками
|
|
|
|
|
Oct 2 2017, 13:36
|

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

|
Цитата(__inline__ @ Oct 1 2017, 15:53)  ставить анальные зонды - блевисты 7,8, ,... нет желания). Недавно на всех своих компах поставил вин 10 x64, заранее купил на ебеи три ключа (5$ за один), в итоге ось получилась официальная, никаких вопросов и таблеток  Теперь все софтины работают как надо, особенно те, которые не хотели заводится на старой вин 7 х64. Вот думаю прикупить ключи для вин-офиса (5..10$) ... Короче, привыкаю к официальному платному софту. Не подкопаться
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 2 2017, 14:20
|

Местный
  
Группа: Участник
Сообщений: 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 Ну а на счёт блевисты, я имел ввиду, что она несанкционированно стучит и из неё сочится во все щели. Если в ХР как-то можно ещё заделать дыры, то в блевистах это практически невозможно. И вообще для меня это хобби, а не производственный процесс с получением выгоды, как тут некоторые поняли.
|
|
|
|
|
Oct 2 2017, 15:45
|

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

|
Цитата(mantech @ Oct 2 2017, 18:29)  В конторе хочешь не хочешь, а придется покупать. Конторы начинает чесаться лишь тогда, когда установленный там "левый" софт начинает стучать своему разработчику ... вот беготня начинается! Боссы готовы до кучи покупать даже необязательные плагины Наблюдал такое однажды.... переживать начинают даже уборщицы Как говорится "пока жареный петух не клюнет" Цитата хрюша самая оптимальная для разработчика... ... архаичного софта  Но любой современный софт требует современного железа и соотв. ось, а с этим уже ничего не поделать (( Помню, хрюшу переставлял на своих компах стабильно раз в полгода-год. Семерка прожила несколько лет. Посмотрим, как поведет себя десятка ...
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 2 2017, 17:42
|

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

|
Цитата(jcxz @ Oct 2 2017, 20:35)  Странная контора, админы которой не знают про файрволл. С самой конторой все в порядке, но админы ... термин "файрволл" им наверняка знаком, но, видать, этим все и ограничивается После этого случая главным "админом" было принято, мягко говоря, странное решение: на ВСЕ компы поставили виртуалки с линухом, из-под которых был возможет выход в инет Виртуалки, естественно, требуют повышенных ресурсов компа, поэтому было принято еще не менее странное решение - добавить в каждый комп ОЗУ до 8Гб... Разумеется, добавка ОЗУ почти никак не отразилась на скорости работы компов, но, благодаря такому "интернету", армия поклонников этих "админов" немного поредела (мягко говоря)
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 2 2017, 19:44
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Forger @ Oct 2 2017, 18:45)  ... архаичного софта sm.gif
Но любой современный софт требует современного железа и соотв. ось, а с этим уже ничего не поделать (( Не совсем, ну хорошо, кортекс А7, А9, можно сказать архаичный, мне хватает, зачем менять то, что хорошо работает, правда? Иногда общаюсь с людьми, говорят, вот надо то обновить, другое... Спрашиваешь, что, плохо работает? Нет, нормально. Тогда зачем обновлять? Просто от нечего делать, видимо...  Цитата(Forger @ Oct 2 2017, 20:42)  После этого случая главным "админом" было принято, мягко говоря, странное решение: на ВСЕ компы поставили виртуалки с линухом, из-под которых был возможет выход в инет cranky.gif Виртуалки, естественно, требуют повышенных ресурсов компа, поэтому было принято еще не менее странное решение - добавить в каждый комп ОЗУ до 8Гб... Ммда, ну и "админы"...
Сообщение отредактировал mantech - Oct 2 2017, 19:45
|
|
|
|
|
Oct 3 2017, 01:29
|

Местный
  
Группа: Участник
Сообщений: 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. Это клиника скажу я вам.... ! В анальные закрома уходят Ассемблер и Си, зато привествуется Си Диез и скриптовые языки, ну никак не предназначенные для программирования контроллеров! Довольно весело и тошно одновременно читать на гиктаймсе/хабре выкладки какого-нибудь "админа" с приаттаченным фрагментом говно-кода на питоне, который мигает лампочками на распберри пи  Ого! Зто он "ТРУЪ адмЫн" и "повелитель железа" теперь: - укротил контроллер на 1-2 ГГц и теперь ходит с распальцовкой... По моему мнению, он просто рядовой говнокодер! Я понимаю, что Raspberry Pi и прочие клоны, Оллвиннеры, ИМХы, Ситары - это Application Processors, но это восе не значит, что нельзя на них писать напрямую (bare metal)! Ситуация меняется, когда производители этих Application Processor-ов СОЗНАТЕЛЬНО ПРЯЧУТ ту самую фундаментальную информацию для работы на low level : - как происходит загрузка программ - алгоритмы работы периферии - таблица векторов прерываний Просто на отшибись дают выгрузку регистров с их описанием. И хорошо, что есть Linux, в исходниках которого можно много чего подчерпнуть и ликвидировать пробелы. Но согласитесь, такой подход к "изучению" процессора - весьма нелёгок и неоптимален! Про софт и палево: Про стучание софтом, можно вообще убрать эти ваши интернеты, на машинах разработчика. Сделать отдельную машину с интернетами, изолированную от других. Или фаервол с белым списком.
Сообщение отредактировал __inline__ - Oct 3 2017, 01:55
|
|
|
|
|
Oct 3 2017, 05:58
|

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

|
Цитата(__inline__ @ Oct 3 2017, 04:29)  можно вообще убрать эти ваши интернеты, на машинах разработчика Для архаичных разработок интернет, может быть, и не нужен, но заказчиков такого архаизма уже почти не осталось (разве что кроме отечественных госзаказов, где чем больше возраст микросхеме, тем дороже железо и потому лучше всем)  Однако, в настоящее время без интернета (выхода в мировую сеть) уже невозможно сделать ни одной современной разработки. Цитата Сделать отдельную машину с интернетами, изолированную от других. Полагаю, что у вас в конторе именно так и сделано
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 3 2017, 06:30
|
Гуру
     
Группа: Свой
Сообщений: 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  Цитата(__inline__ @ Oct 3 2017, 08:29)  Ситуация меняется, когда производители этих Application Processor-ов СОЗНАТЕЛЬНО ПРЯЧУТ ту самую фундаментальную информацию для работы на low level : Проблема в том, что эти процессоры стали настолько сложными, что сами авторы не могут сходу сказать что произойдёт если изменить какой-то регистр настройки - то ли перегреется, то ли "кирпич" получится.... У них техподдержка умрет отвечая на вопросы типа "я тут записал куда-то 0xFFЕ и у меня не работает ЭКРАН, что делать?" Поэтому для конечных пользователей создаются готовые профили настроек, проверенные вдоль и поперек, а избранным дается доступ к их изменению и некоторые описания.
|
|
|
|
|
Oct 3 2017, 07:22
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(__inline__ @ Oct 3 2017, 04:29)  С удовольствием девелопил бы и на Windows 98, но есть причины, по которым это сделать теперь невозможно:
Ну ещё вспомнил, что видел скрипт на Питоне, который мигает лампочками на Raspberry Pi. Это клиника скажу я вам.... ! В анальные закрома уходят Ассемблер и Си, зато привествуется Си Диез и скриптовые языки, ну никак не предназначенные для программирования контроллеров! Не, вин 98 пусть уже отдыхает в мире ином, ибо кроме прямого доступа к железу от нее толку 0, ибо висла она и глючила не по детски... По поводу писанины под питоном - это еще ерунда, посмотрите все типы извращения, которые предлагают фанатики под вин 10 идиотiot  В ходу виртуальные светодиоды из облачных пулов устройств...
|
|
|
|
|
Oct 3 2017, 07:33
|

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

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

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

|
Цитата Однако, в настоящее время без интернета (выхода в мировую сеть) уже невозможно сделать ни одной современной разработки. Почему? Кто мешает использовать два компа - один для выкачивания документации, связи с другими разработчиками, второй - на нём софт и разработка. Цитата Используйте reactos или KolibriOS Последнюю даже пробовал устанавливать и работать. Проникся уважением (к ОС и её разработчикам). Была даже идея портировать под KOS свои наработки в виде эмуляторов (сейчас там только NES и GB©), но пока в приоритете - создание своей игровой платформы. Цитата Проблема в том, что эти процессоры стали настолько сложными, что сами авторы не могут сходу сказать что произойдёт если изменить какой-то регистр настройки - то ли перегреется, то ли "кирпич" получится.... У них техподдержка умрет отвечая на вопросы типа "я тут записал куда-то 0xFFЕ и у меня не работает ЭКРАН, что делать?" Техподдержка - это для дятлов. Потому что : - внятного от неё ничего не услышишь - всегда удается разрулить проблему самостоятельно, не дожидаясь запаздалого ответа от ТП - те кто обращается в ТП, практически все дятлы  - ну и в ТП как правило сидят одни ТП  ))) На счёт сложности тоже спорный вопрос. Вот что реально сложного на моей практике выпало - это программирование VGA-регистров видеокарты для установки HiRes разрешений с большой цветностью BPP с нестандартными длиной и шириной кадра с логической шириной кадра отличающейся от физической, с изменением частоты обновления экрана от 80 Гц и выше(до 130 Гц). Гемор ещё тот: программирование более 50 регистров видеокарты. Вот это я понимаю - сложно. А дёргнуть флаги разрешения клоков на тот же SPI, установка частоты ядра-памяти , установка кеширования данных через MMU с прямой трансляцией адресов - это пустяк по сравнению с задачей выше. Ну и разве что в кирпич можно превратить контроллер, если порт настроить на вывод и замкнуть его на питание или землю, думая что порт на вводе (кнопка). Ну или FUSE сорвать для кварца или SPI-программатора. Но это лечится. Цитата Поэтому для конечных пользователей создаются готовые профили настроек, проверенные вдоль и поперек, а избранным дается доступ к их изменению и некоторые описания. Для конечных пользователей - готовые устройства: просим любить и пользоваться. Отладочные платы - для разработчиков, господа в белых воротничках, извольте открыть доки и описать в SDK как программируется весь набор периферии. А то получается: ключевые сотрудники в Китае на гитхабе постят дистры Линукса, описывая в группе Гугл о том что SDK они дать не могут, а дистр Линкса - запросто. Тоесть всё через задницу: хотите SDK - выколупывайте его в Линуксе! А отдельно мы вам его не дадим! Ну и делать нечего, стал разбираться и понял, что в Линуксе всё спрятано в папках по функциональному назначению: - видео - аудио - порты - остальные подистемы.... - и там куча сорцов на железки разных производителей, включая то что нужно. Но разобраться, пропустить через себя и осознать это - нужно времени намного больше, чем время на освоение и осмысление отдельного SDK.  Ну и в интернете под Линукс много чего интересного есть - вплоть до дисассемблированного загрузчика, по тексту которого можно понять: - куда указывает стек - в какой адрес памяти кладётся программа boot0 (spl) - какая периферия задействуется - в каком режиме процессор (супервизор или юзер) - какие байты в хедере загрузчика важны (сигнатура, контрольная сумма, размер) - и многое другое ЧТО ПРОСТО ОБЯЗАНО БЫТЬ В ДАТАШИТЕ (в Technical Reference) Цитата В ходу виртуальные светодиоды из облачных пулов устройств...  как мне тут сказал один знакомый по этому поводу: "... гнойник рано или поздно лопнет ..." Цитата Не, вин 98 пусть уже отдыхает в мире ином, ибо кроме прямого доступа к железу от нее толку 0, ибо висла она и глючила не по детски... Это 95-я глючила, 98-я только вешалась намертво, если что-то забыть важное сделать. Зато в 98-й винде возможно перейти из DOS-программы в нулевое кольцо по такой схеме: DOS => DOS + DPMI => Ring 0. Было удивительно написать такую вещь как while(inp(0x60)!=1){}; и созерцать глобальную заморозку всех задач и ядра винды, пока не будет нажата клавиша Esc  Ну или рисовать точки не в окне приложения, а с самого верхнего левого угла экрана монитора  И это всё через Low Level в ДОС-программе, а не через GDI или Direct Draw !
Сообщение отредактировал __inline__ - Oct 3 2017, 08:08
|
|
|
|
|
Oct 3 2017, 08:01
|

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

|
Цитата(Эдди @ Oct 3 2017, 10:52)  Эти ваши си-диезы, го и прочий шлак до сих пор так шлаком и остался! Ни один вменяемый человек не будет что-нибудь серьезное на этом писать! Не переживайте вы так, учиться никогда не поздно  Сложно другое - начать (сужу по себе)  Цитата А уж ядро ОС только на С и пишется: как 30 лет назад, так и сейчас, и в ближайшие 30 лет! Ну-ну ... видать все только и делают, что пишут ядра ОС. Ведь больше-то заняться нечем
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 3 2017, 08:13
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Forger @ Oct 3 2017, 10:33)  Уверен, что точно также хихикали программеры в машинных кодах/асм над С-программерами  Времена не меняются Но время расставило все на свои места - кто из них не успел запрыгнуть в "поезд прогресса", тот и остался в забвении в прошлом на своих архаичных железках. В свое время программеры под голой VS хихикали над сырыми .NET 1.0 и JAVA ... Где теперь те "программеры" ? ... Кто из них до сих пор хихикает, либо уже спились, либо сидят в гос-конторах, поскольку всем остальным они уже бесполезны  Хихикали или нет - не важно. Есть какой-то уровень, до которого нужно дойти, и быть на нем до тех пор, пока не дойдем до чего-то по-настоящему нового и адекватного, на сегодня - это уровень Си, наиболее универсального средства программирования. "Особо одаренные" могут изобретать что угодно, но большинство адекватных продолжает им пользоваться... JAVA тоже имеет место быть, но только в случае разноплатформенного использования. Для всяких дотнетов тут места нет от слова вообще...
Сообщение отредактировал mantech - Oct 3 2017, 08:14
|
|
|
|
|
Oct 3 2017, 08:14
|

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

|
Цитата(Эдди @ Oct 3 2017, 07:52)  Эти ваши си-диезы, го и прочий шлак до сих пор так шлаком и остался! Ни один вменяемый человек не будет что-нибудь серьезное на этом писать! А уж ядро ОС только на С и пишется: как 30 лет назад, так и сейчас, и в ближайшие 30 лет! Для С++ место только в узкой нише GUI'шного софта и высокоуровневых библиотек, где его плюшки имеют смысл. Всякие пхытоны-перлы так и остались фигней для развлечения. А ассемблер до сих пор используется — но уже как вставки. Писать на чистом ассемблере нецелесообразно из-за его низкоуровневщины, С же — очень высокоуровневый язык, и его за глаза на все случаи жизни хватает. Так я не являюсь сторонником Си Диеза и прочих вещей в нише микроконтроллеров. Они совершенно для других вещей предназначены. А их внедрение популяризуется из-за большого процента "админов" в IT-шной массе. А они как правило, больше скриптовыми языками владеют, на то и расчёт чтоб с них срубить бабки. По части программирования ядер ОС на Си... Много ли Си-компилеров, способные дать чистый бинарник с любого ORG и без затирания регистров? На счёт GCC не уверен, а вот про Open Watcom C слыхал, что можно сделать бинарник без привязки к ОС и clib. Ну и планировщик задач (Tasker) пишится всёравно на Ассемблере, так как нужно очень чисто пушить и попить контекст задач. Ковырял исходники ucos под ARM7 видел как это всё сделано.
|
|
|
|
|
Oct 3 2017, 08:21
|

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

|
Цитата(mantech @ Oct 3 2017, 08:13)  Хихикали или нет - не важно. Есть какой-то уровень, до которого нужно дойти, и быть на нем до тех пор, пока не дойдем до чего-то по-настоящему нового и адекватного, на сегодня - это уровень Си, наиболее универсального средства программирования. "Особо одаренные" могут изобретать что угодно, но большинство адекватных продолжает им пользоваться... JAVA тоже имеет место быть, но только в случае разноплатформенного использования. Для всяких дотнетов тут места нет от слова вообще... Всему своё время и место. Можете называть меня ОЛД-фагом, но я не чураюсь машинных кодов, например в ассемблерных вставках: часто бывает что встроенный ассемблер в Си каких-то инструкций не поддерживает, а оформлять дополнительный сорец с ассемблером лень, машинные коды выручают  На счёт JAVA раз заговорили, упомяну как сделаны Ведроиды: на ARM процессор ставится виртуальная машина ARM + JAVA : => получается двойная эмуляция! Зачем? Учитывая, что есть специальные ARM-ы, с аппаратной поддержкой JAVA (Jazelle вроде бы?). Налицо - говнокодостроение. JAVA может быть полезна временно, когда нет порта какого-то приложения на целевой платформе, ну или в случае закрытого кода приложения. В остальных случаях - JAVA - тормоз.
|
|
|
|
|
Oct 3 2017, 08:23
|

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

|
Цитата(mantech @ Oct 3 2017, 11:16)  Писателям игрушек для веба это сложно понять, но тут вопрос о программировании на МК.  Для "веба" не пишу, но прекрасно их понимаю, и не имею ничего против развития и прогресса. Если речь про программирование применительно к "бытовым" МК, т.е. под конкретное узкоспециализированное железо, то пока что дальше C/C++ нет смысла соваться. Где возможно, я предпочитаю С++. В более серьезных железках как минимум неразумно лишь одним "молотком и ножовкой" делать все, начиная от портирования ОС, заканчивая сложными клиентскими приложениями. Ведь никому адекватному никогда не придёт в голову идея писать приложения для смартфона целиком на asm/С. С другой стороны, существует известная поговорка "каждый дро%%т как хочет"
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 3 2017, 09:15
|
Гуру
     
Группа: Свой
Сообщений: 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 страниц каждый. Да они минимум год только писать это будут, а потом каждый месяц выпускать по дополнительному тому "исправлений и дополнений"
|
|
|
|
|
Oct 3 2017, 09:20
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата Писателям игрушек для веба это сложно понять, но тут вопрос о программировании на МК. Тестовая среда и всяческие эмуляторы куда быстрее, приятнее и нагляднее пишутся на каком-нибудь протопыхе (perl) или гвидопыхе (python). Да и куча полезного софта управляется с помощью Tcl. Модели опять же на гвидопыхе с numpy пишутся куда быстрее, чем на C или крестах. Есть, конечно, MATLAB, но он стоит сотни нефти, но есть и альтернативы - SciLab, Octave, Axiom и Sagemath (которая чуть более, чем полностью - Pyhton). Ну и во всём этом есть одна загвоздка - как правило, те, кто знают Python, perl, Java, знают так же и C. При этом странно, что те, кто знает только C так кичатся своим неприятием других инструментов.
|
|
|
|
|
Oct 3 2017, 10:07
|

Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Oct 3 2017, 10:14
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата Это лишь ваше мнение, которое не является правилом - не обобщайте. Нет. Это мнение не моё, а весьма большого количества людей. Которые, кстати, не судят всех программистов на Си по осилившим только хэллоуворлд, ну или мигание светодиодом, в случае микроконтроллеров. Понятно, что порог входа в пыхоплеяду ниже, чем в Java/C, поэтому, в абсолютном значении monkey-coder'ов среди них, конечно, больше. Но не в процентном.
|
|
|
|
|
Oct 3 2017, 10:48
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

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

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

|
Цитата Ну и как можно спалить чип неверной записью в регистры? (про порты ввода/вывода, фьюзы и ПЛИСы - не рассказывать!) Можно мои 5 коп добавить? Спасибо (; Не буду про фьюзы… Ошибочно отключенный (неверной записью в регистры) JTAG - это всё равно что спаленный чип (;
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Oct 3 2017, 11:31
|

Знающий
   
Группа: Участник
Сообщений: 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
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Oct 3 2017, 11:52
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Oct 3 2017, 11:52
|

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

|
Цитата(HardEgor @ Oct 3 2017, 10:37)  Хе-хе, попробуйте запустить простейший STM32 прочитав 50 страниц. А в больших чипах взаимосвязей и зависимостей на порядки больше. Зачем мне простейший, когда совсем недавно портировал кодек MELP800 на STM32F405 ? Bare Metal, конечно.
|
|
|
|
|
Oct 3 2017, 11:56
|

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

|
Цитата(Эдди @ Oct 3 2017, 11:52)  Лучше самому постепенно накапливать базу сниппетов, а затем по мере необходимости брать уже готовые куски кода. Вот такую базу у меня есть желание создать под один из современных ARM-ов, типа базового API для работы с нужными узлами. Нечто похожее сделал для ADSP BlackFin BF532/533 и для STM32F405 и для AT91RM9200 - с кешами, с MMU, на полной скорости.
|
|
|
|
|
Oct 3 2017, 11:59
|
Знающий
   
Группа: Участник
Сообщений: 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, там уже на грабли не натыкался — сразу пошел правильной дорогой.
|
|
|
|
|
Oct 3 2017, 12:03
|

Местный
  
Группа: Участник
Сообщений: 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 нет  Только в составе Линукса  Поэтому лепить своё с оглядкой на Линукс  Для STM32F... вообще проблем быть не должно: Keil ARM генерит достаточно внятный стартап с пресетами + куча статей на русском языке! Ну разве что когда код в RAM исполнять - не забыть раздефайнить перенос таблицы векторов прерываний (если они используются) Ну и там же CMSYS со всеми объявленными хедерами - регистры, константы, битовые маски. А HAL + пресеты STM Cube - зло ))) Разве что для раскидки пинов использовать, куб идёт только в блевистах при установленной JRE, поэтому приходится идти в гости к знакомым. Тяжела нынче жизнь аппаратчика  Приходится искать альтернативные пути, не нарушая свои принципы...
Сообщение отредактировал __inline__ - Oct 3 2017, 12:14
|
|
|
|
|
Oct 3 2017, 12:09
|

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

|
Цитата(Эдди @ Oct 3 2017, 14:59)  Это как? Неужто его можно залочить так, что даже бутлоадер не примет перезапись флеша? Можно. Да так, что ядро отладки напрочь отключается, если прошивка не финальная, то камень в помойку. RTFM  Цитата А если стереть бутлоадер, остается еще возможность стереть через SWD/JTAG при должной сноровке (жамкаем reset, а отпуская жмем enter в командной строке, где уже вбили команду стирания флеша). Штатный бутлодырь у STM32 стереть невозможно. После тотальной залочки им уже нельзя изменить прошивку, хотя связь с ним все еще возможна. Если же подход более профессиональный - самодельный бутлодырь, то в этом случае даже с тотальной залочкой обновление прошивки возможно средствами этого самописного бутлодыря, но сам бутлодырь уже никак не заменить. Поэтому тотальную залочку у STM32 следует включать только в самом финале выпуска изделий в серию. Собственно для этого он и был создан. Цитата я даже заголовочный файл с дефайнами портов сам напишу Вот уж действительно заняться нечем
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 3 2017, 12:20
|

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

|
Цитата(Forger @ Oct 3 2017, 12:09)  Вот уж действительно заняться нечем  иногда такой подход оправдан. как правило дефайны регистров делаю т через указатели и к ним обращаются так: *pGPIO_ISR=0x000, а хочется так: GPIO_ISR=0x0000. вот и приходится (volatile unsigned long int*) переправлять на *(volatile unsigned long int*) и отсекать *p Ну это уже мелочи. И кстати, из опыта, некоторые регистры отсутствуют в стандартных хедерах на STM32, приходилось дописывать самому.
|
|
|
|
|
Oct 3 2017, 12:24
|

Профессионал
    
Группа: Свой
Сообщений: 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 это уже сделано, через структуры. Все просто и очевидно. Но если изобретение велосипеда - хобби, то это все меняет
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 3 2017, 12:30
|

Местный
  
Группа: Участник
Сообщений: 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 это уже сделано, через структуры. Все просто и очевидно. Но если изобретение велосипеда - хобби, то это все меняет  Структурное описание регистров порой генерит слишком большой код и снижает понимание процессов, происходящих в аппаратуре. Но это лишь моё мнение.
Сообщение отредактировал __inline__ - Oct 3 2017, 12:27
|
|
|
|
|
Oct 3 2017, 12:31
|

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

|
Цитата(__inline__ @ Oct 3 2017, 15:26)  Обратите внимание - как мало процессов. Говно практически вычищено. Вот это действительно конфа под которой приятно работать, так как всё чисто. Гы  Яркий пример хронической паранойи и суперпедантизма. Либо вам, просто, заняться больше нечем  Цитата Структурное описание регистров порой генерит слишком большой код Это так, если компилятор взят из 90х
Сообщение отредактировал Forger - Oct 3 2017, 12:32
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 3 2017, 12:57
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата(__inline__ @ Oct 3 2017, 15:03)  Для STM32F... вообще проблем быть не должно: Keil ARM генерит достаточно внятный стартап с пресетами + куча статей на русском языке! Я эту фигню не использую, во-первых, линуксоид, во-вторых, зачем мне под виртуалкой гонять ворованный софт, когда есть родное? IDE — geany (правда, я его тупо как редактор использую), а дальше все при помощи make делается (от компиляции до загрузки). Цитата(Forger @ Oct 3 2017, 15:09)  Вот уж действительно заняться нечем  Для 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
|
|
|
|
|
Oct 3 2017, 13:14
|

Профессионал
    
Группа: Свой
Сообщений: 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 тоже платные.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 4 2017, 01:40
|

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

|
Уважаемые mantech и другие пользователи! Мне очень интересно поддерживать общение с вами в данной теме, но мне бы совершенно не хотелось разводить здесь юридические шашни, связанные с программным обеспечением. В частности: последствия таблеток, какое у вас ПО, наличие-отсутствие лицензий, торренты и всё в таком духе. Давайте не будем превращать Форум Разработчиков Электроники в ещё один форум юристов! А то складывается такое впечатление, что некоторых кто-то напугал. Например, пишете про Keil - какой он у вас или упоминаете его в контексте крякнутого. Не нужно этого. Зачем и перед кем оправдыватесь? Давайте лучше делиться опытом в разработке программ для ARM !
|
|
|
|
|
Oct 4 2017, 07:48
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Эдди @ Oct 4 2017, 09:26)  мерзопакостную мастдайную ворованную дрянь! У вас есть рабочая сборка под кортекс А9 и А7 на каком-нить эклипсе с вашим любимым гнушным компилятором, чтоб я смог установить ее к себе на машину (32х битную, если что) и не плясать неделями с бубном чтоб ее настроить, прописать кучу конфигов, либ и пр...? Может поделитесь? А если нет - то оставьте это мнение при себе, в моем понимании инструмент должен быть прежде всего удобным, чтоб человек мог заняться собственно программированием своей задачи, а не мучиться в настройках этого инструмента.
Сообщение отредактировал mantech - Oct 4 2017, 07:50
|
|
|
|
|
Oct 4 2017, 08:37
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Не представляю себе, даже... Меня домашний компьютер 5-летней давности с 4-ядерным процессором и 8ГБ оперативы напрягает иногда: запустишь kicad, а комп задумывается.. Или гентушку поставишь обновлять, и как-то оно долго, да еще и другие задачи подтормаживают. Хотя, интернет меня больше напрягает: дома висит старый зухелевский рутер, который на 3 потребителя никак не может честно разделить входящие почти 100Мбит, если торренты качаю, то больше никому интернета нет ☹
|
|
|
|
|
Oct 4 2017, 08:54
|
Гуру
     
Группа: Участник
Сообщений: 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
|
|
|
|
|
Oct 4 2017, 09:03
|

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

|
Цитата(Эдди @ Oct 4 2017, 11:37)  Не представляю себе, даже... Меня домашний компьютер 5-летней давности с 4-ядерным процессором и 8ГБ оперативы напрягает иногда: запустишь kicad, а комп задумывается.. На всех современных компах узким местом является наличие HDD. Поэтому достаточно лишь поставить SSD, хотя бы чисто под систему и установленный софт. После этого даже откровенный хлам легко обгонит нормальный комп с обычным HDD! Неоднократно подобное наблюдал. Рекомендую Тогда не потребуется параноидальная чистка запущенных процессов, тонкий тюнинг системы и т. п. фетишизм
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|