Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 10.07.2016
Сообщений: 71
1

Компилятор без ограничения кода с ассемблером для ARM

05.06.2017, 19:52. Просмотров 2016. Ответов 13
Метки нет (Все метки)

Добрый вечер! Собственно весь вопрос в заголовке) Кто-нибудь может подсказать открытый компилятор, в котором можно писать код на ассемблере для stm32?
Заранее благодарю
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2017, 19:52
Ответы с готовыми решениями:

Atollic TrueSTUDIO версия light стала без ограничения кода
Но вроде уже не так актуально В новой версии 5.4.0, если нет никакой лицензии, то по умолчанию...

Сопоставление ограничения, введенного без указания имени ограничения, и имени соответствующего столбца средствами SSMS
Если для какого-то столбца введено ограничение UNIQUE или DEFAULT без явного указания имени...

Ограничения при разработке на React Native для MacOS без Mac
Здравствуйте. Хотелось бы уточнить последовательность действий и различия при разработке на React...

Компилятор байт-кода для php
Вот хотел узнать существует ли такой компилятор байт-кода для php.Скорей всего нет.Но как было бы...

13
Эксперт .NET
6863 / 4466 / 1073
Регистрация: 25.05.2015
Сообщений: 13,654
Записей в блоге: 13
05.06.2017, 20:19 2
ARM GCC?
0
0 / 0 / 0
Регистрация: 10.07.2016
Сообщений: 71
05.06.2017, 20:34  [ТС] 3
Rius, я читал про него, но думал, что он только подключается к программам типа eclipse или coocox. Насколько я знаю, arm gcc это только компилятор, т.е без отладчика, да?
0
Эксперт .NET
6863 / 4466 / 1073
Регистрация: 25.05.2015
Сообщений: 13,654
Записей в блоге: 13
05.06.2017, 20:35 4
Это набор утилит: компилятор c/c++, линкер, ассемблер, отладчик и прочее.
Eclipse это одна из IDE, которая может с ним работать. Есть плагин GNU ARM Eclipse, который все фичи GCC ARM более-менее удобно представляет в Eclipse. Но Eclipse далеко не единственная IDE, и на IDE всё не зациклено.
Там есть всё.
https://launchpad.net/gcc-arm-embedded
1
0 / 0 / 0
Регистрация: 10.07.2016
Сообщений: 71
05.06.2017, 20:41  [ТС] 5
Rius, т.е получается в eclipse можно писать на ассемблере, если правильно все настроить?
0
Эксперт .NET
6863 / 4466 / 1073
Регистрация: 25.05.2015
Сообщений: 13,654
Записей в блоге: 13
05.06.2017, 20:55 6
Да. Сам я на ассемблере не пишу. Но в проекте есть стартовые файлы на нём, которые успешно собираются:
Кликните здесь для просмотра всего текста
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
  .syntax unified
  .cpu cortex-m4
  .fpu softvfp
  .thumb
 
.global  g_pfnVectors
.global  Default_Handler
 
/* start address for the initialization values of the .data section. 
defined in linker script */
.word  _sidata
/* start address for the .data section. defined in linker script */  
.word  _sdata
/* end address for the .data section. defined in linker script */
.word  _edata
/* start address for the .bss section. defined in linker script */
.word  _sbss
/* end address for the .bss section. defined in linker script */
.word  _ebss
/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
 
/**
 * @brief  This is the code that gets called when the processor first
 *          starts execution following a reset event. Only the absolutely
 *          necessary set is performed, after which the application
 *          supplied main() routine is called. 
 * @param  None
 * @retval : None
*/
 
    .section  .text.Reset_Handler
  .weak  Reset_Handler
  .type  Reset_Handler, %function
Reset_Handler: 
  ldr   sp, =_estack       /* set stack pointer */
 
/* Copy the data segment initializers from flash to SRAM */  
  movs  r1, #0
  b  LoopCopyDataInit
 
CopyDataInit:
  ldr  r3, =_sidata
  ldr  r3, [r3, r1]
  str  r3, [r0, r1]
  adds  r1, r1, #4
    
LoopCopyDataInit:
  ldr  r0, =_sdata
  ldr  r3, =_edata
  adds  r2, r0, r1
  cmp  r2, r3
  bcc  CopyDataInit
  ldr  r2, =_sbss
  b  LoopFillZerobss
/* Zero fill the bss segment. */  
FillZerobss:
  movs  r3, #0
  str  r3, [r2], #4
    
LoopFillZerobss:
  ldr  r3, = _ebss
  cmp  r2, r3
  bcc  FillZerobss
 
/* Call the clock system intitialization function.*/
  bl  SystemInit   
/* Call static constructors */
    bl __libc_init_array
/* Call the application's entry point.*/
  bl  main
  bx  lr    
.size  Reset_Handler, .-Reset_Handler
0
0 / 0 / 0
Регистрация: 10.07.2016
Сообщений: 71
05.06.2017, 20:56  [ТС] 7
Большое спасибо! Буду разбираться
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,144
Записей в блоге: 6
05.06.2017, 22:21 8
Цитата Сообщение от Isaev_Ivan Посмотреть сообщение
arm gcc это только компилятор, т.е без отладчика, да?
Возьмите IDE типа кокоса или EmBitz в которой все уже есть.
В дистрибутиве EmBitz в отличии от кокоса полный набор утилит включая компилятор, который не требуется отдельно скачивать.
0
0 / 0 / 0
Регистрация: 10.07.2016
Сообщений: 71
07.06.2017, 14:01  [ТС] 9
locm, EmBitz не поддерживает ядра выше cortex-m4? Или можно как-нибудь эту проблему решить??)
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,144
Записей в блоге: 6
07.06.2017, 14:19 10
GCC их поддерживает. К примеру проекты из Куба для STM32F7 нормально собираются в EmBitz.
0
0 / 0 / 0
Регистрация: 10.07.2016
Сообщений: 71
07.06.2017, 14:26  [ТС] 11
При создании проекта в EmBitz нужно выбрать ядро и выше m4 выбрать нельзя. Как именно создать проект для m7, к примеру?) не подскажете? Нужно получается создать пустой проект для stm32 и к нему подключить системные файлы для контроллера m7, так?
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,144
Записей в блоге: 6
07.06.2017, 19:53 12
Цитата Сообщение от Isaev_Ivan Посмотреть сообщение
получается создать пустой проект для stm32 и к нему подключить системные файлы для контроллера m7, так?
В настройках проекта можно указать ядро.
1
Миниатюры
Компилятор без ограничения кода с ассемблером для ARM  
0 / 0 / 0
Регистрация: 10.07.2016
Сообщений: 71
07.06.2017, 21:39  [ТС] 13
locm, огромное спасибо!
0
Модератор
8201 / 6071 / 811
Регистрация: 14.02.2011
Сообщений: 21,060
07.06.2017, 22:48 14
Isaev_Ivan, правила п 3.6
Если какой-либо пост на форуме показался вам полезным, то вы можете выразить свою благодарность, нажав кнопку "Спасибо" внизу самого поста.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2017, 22:48

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

Отправка написанного кода в компилятор для C++
Так вот Есть кнопка и richTextBox1. как сделать чтоб при нажатии на кнопку текст из richTextBox1...

Компилятор mcc18 (C18), ограничения sprintf
Добрый день. У меня есть число типа float. Необходимо его записать в массив, дополнив целую и...

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

Бесплатный компилятор Си для STM8 с объёмом кода до 128 кБ
Увидел на ST новость: Frii Software Tool from STMicroitistronics Adds One More Reason to Choose...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.