PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Программирование микроконтроллеров » Возможно ли написание прошивок из под PB?


Возможно ли написание прошивок из под PB?

Сообщений 1 страница 6 из 6

1

По мотивам этой темы на ум пришёл один метод:
1) Пишем код на уютненьком пурике, и делаем ASM-вставки (если нужно конечно).
2) Транслируем его на .asm
3) На основе .asm компилируем .hex под конкретный процессор, например, через Atmel Studio.

Но, потому-что вот так :dontknow:, выполнил я только второй пункт. Вот программка:

Код:
; PureBasic 5.51
#MV_createAsm = " /COMMENTED" 

SourceFileName$       = ProgramParameter(0)
PBHomeDirectory$      = ProgramParameter(1)

If Len(SourceFileName$) 
  
  
  If Not Len(DestinationFileName$) 
    DestinationFileName$ = SaveFileRequester("Экспорт ASM-файла", GetFilePart(SourceFileName$, #PB_FileSystem_NoExtension), "ASM-Файлы (*.asm)|*.asm|Все Файлы (*.*)|*.*", 0)
    If Not Len(GetExtensionPart(DestinationFileName$)) 
      DestinationFileName$+".asm"
    EndIf
  EndIf
  
  If Len(DestinationFileName$)
    
    CompilerDirectory$  = PBHomeDirectory$ + "\Compilers"
    PBCompiler$         = CompilerDirectory$ + "\pbcompiler.exe"
    
    Parameter$ =~"\""+SourceFileName$+~"\""+#MV_createAsm
    
    If RunProgram(PBCompiler$, Parameter$, CompilerDirectory$, #PB_Program_Hide | #PB_Program_Wait) 
      FileASM$=CompilerDirectory$ + "\purebasic.asm"
      
      If CopyFile(FileASM$, DestinationFileName$) 
        
        ;MessageRequester("Сообщение", DestinationFileName$ + " файл создан!", #PB_MessageRequester_Ok )
        
      Else : MessageRequester("Ошибка экспорта ASM", "Создать файл "+#CRLF$+DestinationFileName$+" не удалось.", #PB_MessageRequester_Error)
      EndIf
      
    Else : MessageRequester("Ошибка экспорта ASM", "Не удалось запусть компиллятор."+#CRLF$+PBCompiler$, #PB_MessageRequester_Error)
    EndIf
    
  Else : MessageRequester("Ошибка экспорта ASM", "Неверно указано имя конечного файла.", #PB_MessageRequester_Error)
  EndIf
  
Else : MessageRequester("Ошибка экспорта ASM", "Имя исходного файла указано неверно.", #PB_MessageRequester_Error)
EndIf

Возможно ли в принципе написание прошивок из под PB? Стоит ли вообще копать эту тему, может лучше забить и пойти наконец выучить СИ?..

0

2

Все не так просто. Ассемблер x86 процессоров несовместим с ассемблером микроконтроллеров, т. к. процессорные ядра отличаются. Поэтому придется вдобавок написать транслятор из x86 в ассемблер микроконтроллера с нужным ядром, а ядер много. Скажем у PIC, AVR, ARM и т. д. процессорных ядер ассемблер разный.
Кроме того нужно будет решить проблему библиотек, которые у PB для x86 и x64.
Другими словами, простой перекомпиляцией в другом ассемблере задачу не решить.

Тигрёнок написал(а):

Возможно ли в принципе написание прошивок из под PB?

На данный момент нет. По крайней мере без написания транслятора в другой ЯП.

Тигрёнок написал(а):

Стоит ли вообще копать эту тему, может лучше забить и пойти наконец выучить СИ?

Смотря для какого микроконтроллера нужно разрабатывать прошивки. Для многих можно найти бейсик. Это конечно будет не PB, но тем не менее его будет проще освоить чем Си.
Сейчас одни из лучших по соотношению производительность/возможности/стоимость это STM32 (STM32F030F4P6 стоят от 0.4$ за штуку, а по производительности/возможностям превосходят PIC и AVR не только с аналогичной но и с гораздо большей стоимостью), но для них есть только один компилятор бейсика - mikroBasic. Сам по себе компилятор не плох, но библиотеки оставляют желать лучшего.

+1

3

Спасибо

Пётр написал(а):

Смотря для какого микроконтроллера нужно разрабатывать прошивки.

В целом ничего конкретного. (просто трындю  :rolleyes: ) Если интересно, передо мной сейчас лежит устройство на Atmega16A с прицепленным к ниму LAN-модулем от ардуины. Всё устройство заказывали на стороне, а мне же нужно собрать свой собственный вариант по-новому и учесть недостатки.

0

4

Тигрёнок написал(а):

мне же нужно собрать свой собственный вариант по-новому и учесть недостатки.

На той же элементной базе или нужен аналог с использованием любых компонентов?
Для AVR есть несколько бейсиков. Bascom-AVR FastAVR, и mikroBasic.

0

5

Пётр написал(а):

На той же элементной базе или нужен аналог с использованием любых компонентов?

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

0

6

Тогда нужно хоть немного изучить МК. Их программирование отличается от компа. Нет ни винды, ни API. Нужно взаимодействовать непосредственно с железом, а для этого нужно знать как это железо (микроконтроллер) устроено.
В первую очередь нужно выбрать МК. Затем скачать даташит на него и изучить. Потом попытаться написать простейшие программы. А после пробовать сделать нужное устройство.

+1


Вы здесь » PureBasic - форум » Программирование микроконтроллеров » Возможно ли написание прошивок из под PB?