mihlit1 0 5 сентября, 2020 Опубликовано 5 сентября, 2020 · Жалоба Пошлите куда надо начинающего. Нужно в программе на Си (Кейл) написАть ассемблерную функцию. mdk_armcc и armasm пытаюсь осилить. Может что нибудь попроще есть? Или это вопрос для подфорума Кейл? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 5 сентября, 2020 Опубликовано 5 сентября, 2020 · Жалоба https://developer.arm.com/documentation/dui0473/j/preface/about-this-book Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 5 сентября, 2020 Опубликовано 5 сентября, 2020 · Жалоба Спасибо. Сейчас приступлю к изучению. https://developer.arm.com/documentation/dui0473/j/preface/about-this-book Это mdk_arm_asm_ user_guide - вид сбоку Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 5 сентября, 2020 Опубликовано 5 сентября, 2020 · Жалоба Может я вопрос задал неверно. __ASM("NOP"); Мне нужно вместо NOP вставить десяток ассемблерных инструкций. Как? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 5 сентября, 2020 Опубликовано 5 сентября, 2020 · Жалоба __ASM void Nops(void) { NOP NOP NOP } __ASM { NOP NOP } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 15 сентября, 2020 Опубликовано 15 сентября, 2020 · Жалоба Я для IAR создавал отдельный файл с расширением "s" Вот начало файла // экспортируемые функции PUBLIC calculate_audio_level PUBLIC arctan // импортируемые переменные EXTERN sound_level EXTERN sin_table_256 EXTERN sound_freq EXTERN dac_sound_buf SECTION .text:CODE(2) THUMB ALIGNROM 2 calculate_audio_level SUB SP, #8 MOV R9, R6 MOV R10, R6 MOVS R7, #0 MOV R5, R4 ;0 LDR.W R8, = -1822 MOV.W R11, #0x100 ; длина буфера звука B main_loop_task_SOUND ; Переход в основной цикл loc_8000E62 LDR R0, =sound_level Окончание файла должно содержать директиву "END" P.S. двоеточие для меток не нужно. Идентификатор начинающийся с первого символа строки, считается меткой. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба Как-то так. /* USER CODE BEGIN 0 */ void myLED(void) { int R0,R1,R2,R3; __ASM ( "MOV R0, #1 \n" "MOV R1, #0x2000 \n" "MOV R2, #0x4001100C \n" "loop: \n" "STR R0, [R2] \n" "MOV R3, #0x00100000 \n" "delay_1: \n" "SUBS R3, R3, #1 \n" "BNE delay_1 \n" "STR R1, [R2] \n" "MOV R3, #0x00500000 \n" "delay_2: \n" "SUBS R3, R3, #1 \n" "BNE delay_2 \n" "B loop \n" ); } /* USER CODE END 0 */ Не получается задержку между переключением светодиода выделить в процедуру. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба 1. Не надо делать задержки бесполезными командами. Используйте таймер. 2. В вашем случае нет никакой надобности в ассемблере. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 22 сентября, 2020 Опубликовано 22 сентября, 2020 (изменено) · Жалоба 18 минут назад, uriy сказал: 2. В вашем случае нет никакой надобности в ассемблере. Это мой первый опыт с ассемблером ARM. Задача состоит в том, чтобы прикрутить внешний АЦП к Orange Pi Zero. Изменено 22 сентября, 2020 пользователем mihlit1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 34 22 сентября, 2020 Опубликовано 22 сентября, 2020 · Жалоба Кейл и Orange Pi Zero - по меньшей мере оригинально. А если серьёзнее, то не barebone Orange Pi Zero (линукс ведь) с ассемблером (первоопытным) просто так не подпустит. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 23 сентября, 2020 Опубликовано 23 сентября, 2020 · Жалоба 22 часа назад, mihlit1 сказал: Это мой первый опыт с ассемблером ARM. Ход моих мыслей: 1. STM32 - ARM 2. Orange Pi Zero - ARM 3. С ассемблером знаком only AVR. 4. Ну не на форуме же ARM задавать вопрос про ассемблерные вставки. 5. С Linux -ом пытаюсь подружиться уже год, есть положительные результаты. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 23 сентября, 2020 Опубликовано 23 сентября, 2020 · Жалоба 25 минут назад, mihlit1 сказал: Ход моих мыслей: 1. STM32 - ARM 2. Orange Pi Zero - ARM STM32 это Cortex-Mx, микроконтроллер, а в Orange Pi Zero стоит Cortex-A7, это две большие разницы. У Orange Pi уже есть свой аудиопроцессор, проще научиться им пользоваться. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 23 сентября, 2020 Опубликовано 23 сентября, 2020 · Жалоба 1 hour ago, mihlit1 said: Ход моих мыслей: 1. STM32 - ARM 2. Orange Pi Zero - ARM 3. С ассемблером знаком only AVR. 4. Ну не на форуме же ARM задавать вопрос про ассемблерные вставки. 5. С Linux -ом пытаюсь подружиться уже год, есть положительные результаты. С ассемблером можно сделать задержку, "подергать вывод", а тем более подключить АЦП вам не удастся. Доступ напрямую к железу закрыт операционной системой. Доступ только через API. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mihlit1 0 23 сентября, 2020 Опубликовано 23 сентября, 2020 · Жалоба 3 часа назад, misyachniy сказал: Доступ напрямую к железу закрыт операционной системой. Доступ только через API. А как тогда я к разъему GPIO подключил дисплей по 8-битной шине? Или мы говорим о разных вещах? 3 часа назад, SSerge сказал: У Orange Pi уже есть свой аудиопроцессор, проще научиться им пользоваться. Умельцы к DCMI внешний АЦП прикручивают и с помощью ассемблера 100MSPS от внешнего АЦП получают. Аудиопроцессор поди такое не потянет? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 23 сентября, 2020 Опубликовано 23 сентября, 2020 · Жалоба 1 hour ago, mihlit1 said: А как тогда я к разъему GPIO подключил дисплей по 8-битной шине? Или мы говорим о разных вещах? Умельцы к DCMI внешний АЦП прикручивают и с помощью ассемблера 100MSPS от внешнего АЦП получают. Аудиопроцессор поди такое не потянет? Не знаю. Текста исходников не вижу и ссылок тоже. "STR R1, [R2] \n" Изменяет состояние вывода под Linux на плате Orange Pi? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться