Ïîìîùü - Ïîèñê - Ïîëüçîâàòåëè - Êàëåíäàðü
Ïîëíàÿ âåðñèÿ ýòîé ñòðàíèöû: VS Code + gcc/gdb
Ôîðóì ðàçðàáîò÷èêîâ ýëåêòðîíèêè ELECTRONIX.ru > Ìèêðîêîíòðîëëåðû (MCs) > Cðåäñòâà ðàçðàáîòêè äëÿ ÌÊ > GNU/OpenSource ñðåäñòâà ðàçðàáîòêè
Øàìàíú
Ïðèâåòñòâóþ âñåõ!

"Ïðèêðóòèë" ê Visual Studio Code gcc/gdb (äëÿ ARM). Âñå âåñüìà íåäóðíî ðàáîòàåò (îòëàäêà ÷åðåç OOCD). Äîâîëüíî óäîáíî, êîìïàêòíî è ðàáîòàåò øóñòðî.

Êîìó-òî èíòåðåñíî? Ðàññêàçûâàòü êàê ïðèêðóòèòü?
AHTOXA
Öèòàòà(Øàìàíú @ Dec 25 2016, 00:29) *
Êîìó-òî èíòåðåñíî? Ðàññêàçûâàòü êàê ïðèêðóòèòü?

Êîíå÷íî èíòåðåñíî! È íå òîëüêî êàê ïðèêðóòèòü, íî è âîîáùå, êàê âïå÷àòëåíèÿ îò ýòîé ñòóäèè. Íå òîðìîçèò? Ìîæíî ëè ïðûãàòü ïî êîäó? Õîðîøî ëè ïàðñèò êîä c/c++?
Îòïðàâëÿåò ëè îíà "òåëåìåòðèþ" â ìèêðîñîôò? (À òî ÿ ÷èòàë, ÷òî äàæå åñëè îòêëþ÷èòü, òî âñ¸ ðàâíî îòïðàâëÿåò).
Íó è âñ¸ òàêîå.
Øàìàíú
Öèòàòà(AHTOXA @ Dec 24 2016, 22:51) *
Êîíå÷íî èíòåðåñíî!


ÎÊ. Òîãäà íà÷íåì ñ òîãî, êàê ïðèêðóòèòü:
1.Ñîáñòâåííî ñêà÷àòü è óñòàíîâèòü VS Code
2. VS Code äëÿ ïîäñâåòêè ñèíòàêñèñà, àâòîêîìïëèòà, ïîäñêàçîê è ò.ï. íóæíî äîáàâèòü ðàñøèðåíèå cpptools ( https://marketplace.visualstudio.com/items?...vscode.cpptools ). Ýòî ðàñøèðåíèå ìîæåò ðàáîòàòü ñ gdb, íî òîëüêî äëÿ îòëàäêè íà ÏÊ. Ïîýòîìó îòëàä÷èê â íåì ìû êîíôèãóðèðîâàòü íå áóäåì.
3. ýòîì ðàñøèðåíèè åñòü êàêîé-òî çàòûê - îíî äîëæíî ðàáîòàòü ñðàçó, íî áåç ïèíêà íå âûõîäèò. ×òîáû çàðàáîòàëî íóæíî â êàòàëîãå .vscode (îí ñîäàåòñÿ VS Code âíóòðè ãëàâíîãî êàòàëîãà Âàøåãî ïðîåêòà) ñîçäàòü ôàéë c_cpp_properties.json ñëåäóþùåãî ñîäåðæàíèÿ:
CODE

{
"configurations": [
{
"name": "ARM",
"includePath":
[
"C:/Include",
"${workspaceRoot}/Include"
],
"browse" :
{
"limitSymbolsToIncludedHeaders" : true,
"databaseFilename" : "${workspaceRoot}/.vscode/.browse.VC.db"
}
}
]
}


Ïóòè ê çàãîëîâêàì óêàçûâàþòñÿ àáñîëþòíûå. Äëÿ çàäàíèÿ ïóòè îòíîñèòåëüíî ãëàâíîãî êàòàëîãà ïðîåêòà ìîæíî èñïîëüçîâàòü ${workspaceRoot}
Ïîñëå ýòîãî ðàñøèðåíèå íà÷èíàåò íîðìàëüíî ðàáîòàòü.
4.×òîáû ðàáîòàëà êîìïèëÿöèÿ íóæíî ñîçäàòü ôàéë "çàäà÷" (â êàòàëîãå .vscode). Ó ìåíÿ îí âûãëÿäèò òàê (óñòàíîâëåíû gcc/gdb/mingw), ÷òî-ãäå äîëæíî áûòü ïîíÿòíî:
CODE

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "sh.exe",
"isShellCommand": true,
"args": ["-c"],
"showOutput": "always",
"suppressTaskName": false,
"tasks":
[
{
"isBuildCommand": true,
"suppressTaskName": true,
"taskName": "make",
"args": ["make"],
"isWatching": false,
"problemMatcher":
{
"owner": "c",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern":
{
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"isBuildCommand": false,
"isTestCommand": true,
"suppressTaskName": true,
"taskName": "flash",
"args": ["make flash"],
"isWatching": false,
},
{
"taskName": "clean",
"suppressTaskName": true,
"args": ["make clean"]
},
{
"taskName": "rebuild",
"suppressTaskName": true,
"args": ["make clean all"],
"isWatching": false,
"problemMatcher":
{
"owner": "c",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern":
{
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"taskName": "oocd",
"suppressTaskName": true,
"args" : ["c:/openocd-0.9.0/bin-x64/openocd.exe -f interface/olimex-arm-usb-ocd.cfg -f target/stm32f1x.cfg -f cfg/debug.cfg"]
}
]
}


Ïîñëå ýòîãî ñáîðêà ìîæåò áûòü çàïóùåíà ÷åðåç Ctrl+Shift+B (ñî÷åòàíèå ìîæíî ñìåíèòü íà ïðèâû÷íîå, ÿ ïîñòàâèë áîëåå ïðèâû÷íîå ìíå Shift+F8) èëè ÷åðåç "ñòðîêó êîìàíä" èëè êàê îíî ïðàâèëüíî íàçûâàåòñÿ ó íèõ - âûçûâàåòñÿ ïî Ctrl+Shift+P. Ïðîøèâêà çàïóñêàåòñÿ ÷åðåç êîìàíäó òåñòèðîâàíèÿ Ctrl+Shift+T, åñòåñòâåííî ñî÷åòàíèÿ ìîæíî ñìåíèòü.
5.Ïðèêðó÷èâàåì gdb. Äëÿ ýòîãî íóæíî äîáàâèòü ðàñøèðåíèå Native debug ( https://marketplace.visualstudio.com/items?...=webfreak.debug ). Ïîòîì íàæàòü íà êíîïêó Îòëàäêè íà áîêîâîé ïàíåëè, ïîòîì íà øåñòåðåíêó ââåðõó ñïðàâà è âûáðàòü GDB â ñïèñêå. Îòêðîåòñÿ ôàéë êîíôèãóðàöèè çàïóñêà GDB (îí íàõîäèòñÿ â .vscode/launch.json). Ó ìåíÿ îí âûãëÿäèò òàê:
CODE

{
"version": "0.4.2",
"configurations": [
{
"name": "Debug gdb",
"type": "gdb",
"request": "attach",
"executable": "${workspaceRoot}\\Debug\\Main.elf",
"target": "localhost:3333",
"cwd": "${workspaceRoot}",
"gdbpath": "C:\\arm\\bin\\arm-kgp-eabi-gdb.exe",
"remote": true,
"autorun": [
"load ./Debug/Main.elf",
"break main",
"monitor reset"
]
}
]
}

Íàçíà÷åíèÿ ïîëåé äóìàþ ïîíÿòíû ïî èõ èìåíàì (êðîìå òîãî ïðè ðåäàêòèðîâàíèè êîíôèãîâ ñèëàìè vs code âûäàþòñÿ âñïëûâàþùèå ïîäñêàçêè). Çàïèñûâàåì ôàéë è âîò ñîáñòâåííî è âñå - ïîñëå ýòîãî äîëæíà ðàáîòàòü îòëàäêà/ñáîðêà/ïðîøèâêà/ðåäàêòèðîâàíèå. Ïåðåä îòëàäêîé íóæíî çàïóñòèòü OOCD, ñäåëàòü ýòî ìîæíî ñêîíôèãóðèðîâàííîé íàìè êîìàíäîé task->oocd, ìîæíî è âðó÷íóþ.
6.Äëÿ íàâåäåíèÿ êðàñèâîñòåé ìîæíî óñòàíîâèòü ïàêåò èêîíîê è ïîïðàâèòü ïîä ñåáÿ ðàñêðàñêó. Íó è äàëüøå äðóãèå ðàñøèðåíèÿ "ïî âêóñó".

Öèòàòà
È íå òîëüêî êàê ïðèêðóòèòü, íî è âîîáùå, êàê âïå÷àòëåíèÿ îò ýòîé ñòóäèè.

Âïå÷àòëåíèé ïîêà ìàëî - âðåìåíè ïðîøëî ìàëî, äà è ñåé÷àñ çàíÿò íåìíîãî äðóãèì. Èçíà÷àëüíî ÿ ñòàâèë åå ñ äðóãîé öåëüþ - èíîãäà ïèøó ïîä DSP56300 è êàê-òî íè îäèí ðåäàêòîð, õîòü ñ ïëàãèíàìè, õîòü áåç íå ïîäñâå÷èâàåò íîðìàëüíî ñèíòàêñèñ àññåìáëåðà DSP56300, è íå ïðåäëàãàåò autocomplete äàæå â "òóïîé" ôîðìå (êîãäà äëÿ ïîäñòàíîâêè ïðåäëàãàþòñÿ ïðîñòî âñå èäåíòèôèêàòîðû èç òåêóùåãî äîêóìåíòà).
VS Code èç êîðîáêè ýòîãî òîæå íå ïðåäëàãàåò, íî çà ïîë äíÿ ÿ ðàçîáðàëñÿ êàê è íàïèñàë ê íåìó ðàñøèðåíèå ñ ïîäñâåòêîé ñèíòàêñèñà è íåêîòîðûìè ôè÷àìè ïî ââîäó/ôîðìàòèðîâàíèþ êîäà. Ïëþñ autocomplete ðàáîòàåò (ïóñòü è â "íåèíòåëëåêòóàëüíîì" âèäå, íî â àññåìáëåðå ýòî î÷åíü óäîáíî). Èíòåðåñíî, ÷òî äëÿ íàïèñàíèÿ ðàñøèðåíèÿ íè÷åãî êðîìå ñàìîé VS Code íå ïîòðåáîâàëîñü :)

Öèòàòà
Íå òîðìîçèò?

Íåò, òîðìîçîâ íåò.
Öèòàòà
Ìîæíî ëè ïðûãàòü ïî êîäó?

Äà.
Öèòàòà
Õîðîøî ëè ïàðñèò êîä c/c++?

Íîðìàëüíàÿ ñòóäèÿ ýòî äåëàåò ëó÷øå, õîòÿ äëÿ èñïîëüçîâàíèÿ ãîäåí è òàêîé âàðèàíò (ïðàâäà ïðîåêò íà ÷èñòîì Ñ, ÷òî áóäåò íà ïëþñàõ íå çíàþ). c/c++ ðàñøèðåíèå íàõîäèòñÿ â ñòàäèè "ïðåâüþ" è åãî àêòèâíî äîïèëèâàþò, ÷òî äàåò íàäåæäû íà "ñ÷àñòëèâûé ôèíàë".

Öèòàòà
Îòïðàâëÿåò ëè îíà "òåëåìåòðèþ" â ìèêðîñîôò? (À òî ÿ ÷èòàë, ÷òî äàæå åñëè îòêëþ÷èòü, òî âñ¸ ðàâíî îòïðàâëÿåò).

ß îòêëþ÷èë. Íà ñ÷åò îòïðàâëÿåò ëè â òàêîì âèäå íå èíòåðåñîâàëñÿ - ó ìåíÿ íè÷åãî îñîáî ñåêðåòíîãî íåò :) Âðîäå ðàñøèðåíèÿ ìîãóò îòïðàâëÿòü ñâîþ "òåëåìåòðèþ" è åå íóæíî îòêëþ÷àòü îòäåëüíî.

Öèòàòà
Íó è âñ¸ òàêîå

Êàê ðàáîòàåò ñ gdb ïîíðàâèëîñü. Ñàì ðåäàêòîð íåñêîëüêî àñêåòè÷íûé íà ïåðâûé âçãëÿä, íî â íåì âñå ðàáîòàåò è â íåì, â ïðèíöèïå, âñå åñòü (ïî êðàéíåé ìåðå ïîêà íè÷åãî òàêîãî, ÷åãî áû êðèòè÷åñêè íå õâàòàëî íå îáíàðóæèë). Ïðè íåîáõîäèìîñòè âñå íàñòðàèâàåòñÿ, äåëàåòñÿ ïðàâäà ýòî íå ÷åðåç ìåíþ è äèàëîãè, à ðåäàêòèðîâàíèåì êîíôèãà, êîòîðûé â âèäå json ôàéëîâ. Ïîíðàâèëîñü, ÷òî â îòëè÷èè îò ïîëíîöåííîé ñòóäèè vs code íå çàãàæèâàåò êàòàëîã ïðîåêòà êó÷åé ñâîèõ ôàéëîâ - âñå ñâîå îíà õðàíèò â îäíîì êàòàëîãå .vscode

Äà, åñòü ïîäñâåòêà ñèíòàêñèñà shell, makefile è äàæå matlab (ÿ óæå íå ãîâîðþ ïðî áîëåå ïîïóëÿðíûå).
AHTOXA
Ñïàñèáî, î÷åíü ïîäðîáíî è äîõîä÷èâî.

Ñ îäíîé ñòîðîíû, ìåíÿ ýêëèïñà âïîëíå óñòðàèâàåò... Ê òîìó æå ÿ íå î÷åíü ëþáëþ ìèêðîñîôò.
Ñ äðóãîé ñòîðîíû, âîçìîæíîñòü çàïèëèâàòü ïîä ñåáÿ ïëàãèíû - ýòî áîëüøîé ïëþñ.
Òàê ÷òî âûâîä òàêîé: íàäî áóäåò ïîïðîáîâàòü sm.gif
Øàìàíú
Öèòàòà(AHTOXA @ Dec 25 2016, 10:45) *
Ñ îäíîé ñòîðîíû, ìåíÿ ýêëèïñà âïîëíå óñòðàèâàåò... Ê òîìó æå ÿ íå î÷åíü ëþáëþ ìèêðîñîôò.

ß êîãäà-òî äàâíî Ýêëèïñ ïðîáîâàë è îí ìíå íå ïîíðàâèëñÿ. Ñ òåõ ïîð òàê è ñèæó íà ïîëíîöåííîì MSVC, ñ GCC ÿ åãî "ïîäðóæèë" áåç îñîáûõ ïðîáëåì, íî îòëàæèâàòüñÿ ïðèõîäèëîñü ãîëûì gdb.  ïðèíöèïå íè÷åãî ñëîæíîãî â ýòîì íåò, äà è òðåáóåòñÿ ñåðüåçíàÿ îòëàäêà íå òàê óæ ÷àñòî, íî êîãäà ó îòëàä÷èêà åñòü ÃÓÉ ýòî âñå æå ïðèëè÷íî êîìôîðòíåå.
darlock
Óâàæàåìûé øàìàíú, à ìîæíî ïîïîäðîáíåå ïî 56 ñåðèè?
Øàìàíú
Öèòàòà(darlock @ Jan 19 2017, 14:38) *
Óâàæàåìûé øàìàíú, à ìîæíî ïîïîäðîáíåå ïî 56 ñåðèè?

Ìîæíî sm.gif ×òî èìåííî èíòåðåñóåò?
darlock
Åñòü EVB è ïðèìåðû êîäà.
Õî÷åòñÿ äëÿ íà÷àëà ñêîìïèëèðîâàòü êîä, çàãðóçèòü åãî. Çàòåì ïîïðîáîâàòü óæå ñâîé äåëàòü êîä.
Êðàéíå æåëàòåëüíî èìåòü âîçìîæíîñòü îòëàäêè íà EVB.

Êàê ÿ ïîíÿë ïîñëå ñëèÿíèÿ NXP è Freescale ñ 56 ñåðèåé âîîáùå êàêàÿ-òî æåñòü. Äàæå ñêà÷àòü íè÷åãî íåëüçÿ, ò.ê. íè÷åãî íåò.

EVB56307 - äëÿ íà÷àëà ñîéäåò.
Øàìàíú
Öèòàòà(darlock @ Jan 19 2017, 15:56) *
Åñòü EVB è ïðèìåðû êîäà.
Õî÷åòñÿ äëÿ íà÷àëà ñêîìïèëèðîâàòü êîä

Íó ýòî âñå î÷åíü ïðîñòî äåëàåòñÿ. Äëÿ íà÷àëà íàäî ïðî÷èòàòü äîêè íà àññåìáëåð, ïîòîì:
Êîä
asm56300 -A -OCEX,MEX,MU,NOMD,MC -Bxxx.cld -Lxxx.lst xxx.asm
cldlod xxx.cld > xxx.lod

Ïåðâàÿ êîìàíäà ñêîìïèëèðóåò Âàø xxx.asm â îáúåêòíûé ôàéë xxx.cld è ñîçäàñò ëèñòèíã xxx.lst. Âòîðàÿ èç .cld ôàéëà ñäåëàåò .lod, êîòîðûé î÷åíü ïðîñòî ðàñïàðñèòü è ñêîðìèòü âíóòðåííåìó çàãðóç÷èêó ïî SPI, íàïðèìåð.

Öèòàòà
çàãðóçèòü åãî.

ß íå â êóðñå, ÷òî òàì ó EVM åñòü íà áîðòó êóäà ìîæíî "çàãðóçèòü" è êàêèå èíñòðóìåíòû ñ íåé ïîñòàâëÿëèñü äëÿ ýòîãî.
Ìîãó ïðåäëîæèòü ïóòü êîòîðûì â ñâîå âðåìÿ ÿ âîñïîëüçîâàëñÿ:
1. Äåëàåì ïðîñòóþ ïðîãðàììó äëÿ DSP56k êîòîðàÿ çàæèãàåò ñâåòîäèîä.
2. Ïèøåì íà ÏÊ ïðîãðàììó êîòîðàÿ ñïîñîáíà ïðî÷èòàòü .lod è ñêîðìèòü åãî âñòðîåííîìó çàãðóç÷èêó DSP56k, íàïðèìåð, ïî SPI.
3. Èñïîëüçóåì (2) ÷òîáû çàãðóçèòü (1) â ÎÇÓ DSP56k è óáåäèòüñÿ, ÷òî (1) ðàáîòàåò.

Êàê ýòî îñèëèòå ïîë äåëà ñäåëàíî sm.gif  ïðèíöèïå äëÿ ïîèãðàòüñÿ õâàòèò è ýòîãî, åñëè æå õî÷åòñÿ áîëüøåãî, òî ïîñëå ýòîãî:
4. Ïèøèòå çàãðóç÷èê êîòîðûé áóäåò ïðèíèìàòü äàííûå ñ ÏÊ è çàïèñûâàòü èõ â Ôëåø-ïàìÿòü íà ïëàòå.
5. Ìîäèôèöèðóåòå ïðîãðàììó (2), ÷òîáû îíà çàãðóæàëà â ÎÇÓ DSP56k ñ ïîìîùüþ âñòðîåííîãî çàãðóç÷èêà ïðîãðàììó (4), à ïîòîì ñêàðìëèâàëà åé òîò ôàéë êîòîðûé Âàì íóæíî çàïèñàòü â Ôëýø-ïàìÿòü.

Âîò ñîáñòâåííî è âñå - òåïåðü ó Âàñ åñòü âñå, ÷òîáû Âû ìîãëè Âàøó ïðîãðàììó çàïèñàòü â Ôëýø-ïàìÿòü, à èç Ôëýø-ïàìÿòè êàê ïàðàëëåëüíîé, òàê è ïîñëåäîâàòåëüíîé DSP5672õ óìååò ãðóçèòñÿ ñàì (DSP56307 òîëüêî èç ïàðàëëåëüíîé). Òàêæå ó Âàñ åñòü èíñòðóìåíò, ÷òîáû çàãðóæàòü ïðîãðàììó ïðÿìî â ÎÇÓ DSP56k è ñòàðòîâàòü îòòóäà.

Àëüòåðíàòèâíûé âàðèàíò - ïðîøèâàåòå ôëåø-ïàìÿòü îòäåëüíî (íå óâåðåí, ÷òî íà EVM ýòî âîçìîæíî, íî åñëè ïëàòó äåëàòü ñàìîñòîÿòåëüíî, òî âïîëíå ìîæíî ñäåëàòü è òàê), òîãäà íèêàêèå çàãðóç÷èêè íå íóæíû.

Öèòàòà
Êðàéíå æåëàòåëüíî èìåòü âîçìîæíîñòü îòëàäêè íà EVB.

Åñëè Âû ïðî îòëàäêó ÷åðåç JTAG, òî íè÷åãî íå ïîäñêàæó.  òå âðåìåíà, êîãäà ÿ íà÷èíàë îòëàäêà ñòîèëà äóðíûõ äåíåã, ñåé÷àñ âðîäå åñòü âåðñèÿ (âåñüìà äðåâíÿÿ) OOCD, ñ ïîääåðæêîé DSP56k, íî ðàáîòàëî/ðàáîòàåò ëè ýòî è íàñêîëüêî õîðîøî íå ïîäñêàæó, ò.ê. íå ïîëüçóþñü. ß ó ñåáÿ äàæå JTAG íå ðàçâîäèë - ìíå õâàòàåò äèàãíîñòè÷åñêîãî âûâîäà/ñâåòîäèîäîâ.

Öèòàòà
Êàê ÿ ïîíÿë ïîñëå ñëèÿíèÿ NXP è Freescale ñ 56 ñåðèåé âîîáùå êàêàÿ-òî æåñòü. Äàæå ñêà÷àòü íè÷åãî íåëüçÿ, ò.ê. íè÷åãî íåò.

Ñåðèÿ DSP56K óìåðëà ÷åðåç ïàðó ëåò ïîñëå âûõîäà äâóõãîëîâûõ DSP â ñåðèè DSP567xx sad.gif Òîãäà åùå ýòî áûë Freescale.

Åñëè ÷òî-òî êîíêðåòíîå íóæíî èç äðåâíèõ èíñòðóìåíòîâ/äîêîâ ïî ýòîé ÷àñòè ìîãó âûëîæèòü êóäà-íèòü èëè îòïðàâèòü ïî ìûëó.

P.S. Íàâåðíîå íóæíî ïîïðîñèòü ìîäåðàòîðîâ ïåðåíåñòè ïîñëåäíèå ñîîáùåíèÿ â DSP ðàçäåë rolleyes.gif ...
Øàìàíú
Ïîþçàë ÿ áîëåå-ìåíåå èíòåíñèâíî îòëàäêó ïîä Cortex-M7 (ëàóí÷ïàäîâñêèé arm-none-eabi-gdb + OpenOCD). Âûÿñíèëèñü íåêîòîðûå êîñÿêè Netive Debug ðàñøèðåíèÿ, à ïîòîì âûøëî îáíîâëåíèå VS Code, à ñ íèì îáíîâèëèñü cpptools ( https://marketplace.visualstudio.com/items?...vscode.cpptools ). Ïîñëå îáíîâëåíèÿ ìíå óäàëîñü ñêîíôèãóðèðîâàòü cptools äëÿ ðàáîòû ñ arm-none-eabi-gdb (áåç èñïîëüçîâàíèÿ êîñòûëÿ â âèäå Native Debug). Ñîáñòâåííî èçìåíåíèÿ êàñàþòñÿ ïóíêòà 5 ìîåé èíñòðóêöèè (ñì. âûøå). Native Debug òåïåðü íå íóæåí), launch.json âûãëÿäèò òàê:
CODE
"configurations": [

{
"name": "OpenOCD & gdb",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/Debug/Main.elf",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": false,
"logging": {
"engineLogging":false,
"moduleLoad": true,
"exceptions": true
},
"windows": {
"MIMode": "gdb",
"miDebuggerPath":"c:/arm/bin/arm-none-eabi-gdb.exe",
"setupCommands": [
{"text":"-target-select remote localhost:3333"},
{"text":"-interpreter-exec console \"monitor reset halt\""}
],
"launchCompleteCommand": "exec-continue"
}
}
]
}


"Ïîä ñåáÿ" íóæíî ïîìåíÿòü miDebuggerPath è program, òàêæå ìîæíî èçìåíèòü èìÿ êîíôèãóðàöèè name . Ðàáîòàåò î÷åíü õîðîøî!

Êðîìå òîãî ïîñëå îáíîâëåíèÿ íàìíîãî ëó÷øå ðàáîòàåò IntelliSense (ïî÷òè êàê â "áîëüøîì" VS). Ïîêà îò VS Code ó ìåíÿ ñàìûå õîðîøèå âïå÷àòëåíèÿ.
Radmir
Åñòü ëè ñïîñîá äîáàâëÿòü ôàéëû â tasks.json/makefile/cmakelists.txt ÷åðåç GUI?
Øàìàíú
Öèòàòà(Radmir @ May 28 2017, 12:54) *
Åñòü ëè ñïîñîá äîáàâëÿòü ôàéëû â tasks.json/makefile/cmakelists.txt ÷åðåç GUI?

1. ÇÀ÷åì èõ äîáàâëÿòü â tasks.json ?

2. Ìîæíî íàïèñàòü makefile òàê, ÷òî îí çàãðåáàåò âñå ôàéëû èç íóæíûõ êàòàëîãîâ (ó ìåíÿ èìåííî òàê è ñäåëàíî)

3. cmake íå èñïîëüçóþ, ïîýòîìó íè÷åãî ñêàçàòü íå ìîãó

Íà ñåãîäíÿøíèé äåíü èñïîëüçóþ MS VS Code óæå ïîëãîäà, êóäà-ëèáî ïåðåõîäèòü íå ñîáèðàþñü. Ðåäàêòîð íðàâèòñÿ äàæå áîëüøå, ÷åì â "áîëüøîì" MSVS 2013.
x893
Íàâåðíîå ÿ ÷åãî-òî íå äîãîíÿþ, íî ðàçâå â PlatformIO óæå íå ñäåëàëè ýòî áåç øàìàíñòâà ?
Øàìàíú
Öèòàòà(x893 @ Jun 18 2017, 14:57) *
ðàçâå â PlatformIO óæå íå ñäåëàëè ýòî áåç øàìàíñòâà ?

À ÷òî òàêîå PlatformIO? ÄÀ è êàêèå øàìàíñòâà - â äâà êîíôèãà ïðîïèñàòü íóæíûå êîìàíäû?

Íûí÷å ýòà èíñòðóêöèÿ ìîæåò áûòü íåñêîëüêî óïðîùåíà - òåïåðü âñÿ íóæíàÿ ïîääåðæêà åñòü ïðÿìî â ðîäíîì ðàñøèðåíèè cpptools
x893
https://www.google.ru/?q=PlatformIO
Ïðîñòî íàæàòü ENTER
Øàìàíú
Öèòàòà(x893 @ Jun 18 2017, 20:30) *
https://www.google.ru/?q=PlatformIO
Ïðîñòî íàæàòü ENTER

Äà ÿ â÷åðà ïîñìîòðåë, íî òàê è íå ïîíÿë è çà÷åì íóæíà ýòà ïîëóïëàòíàÿ õðåíü, ñ íåïîíÿòíîé ðåãèñòðàöèåé, çàòî÷åííàÿ, êàê ÿ ïîíÿë, ïîä àðäóèíî?
x893
Öèòàòà(Øàìàíú @ Jun 19 2017, 12:34) *
Äà ÿ â÷åðà ïîñìîòðåë, íî òàê è íå ïîíÿë è çà÷åì íóæíà ýòà ïîëóïëàòíàÿ õðåíü, ñ íåïîíÿòíîé ðåãèñòðàöèåé, çàòî÷åííàÿ, êàê ÿ ïîíÿë, ïîä àðäóèíî?

Àðäóèíî òàì íå ñèëüíî ïðè÷åì. Íàñ÷åò ïëàòíîñòè íå çàìåòèë.
Íóæíà ïðèìåðíî çà òåì æå, ÷òî è îñòàëüíûå IDE.
timurey
Ó ìåíÿ òàê è íå ðàáîòàåò ïîëíîöåííî îòëàäêà:
  • âî âðåìÿ ðàáîòû ïðîãðàììû íå ïîëó÷àåòñÿ îñòàíîâèòü âûïîëíåíèå íàæàòèåì íà êíîïêó "ïàóçà".
  • âî âðåìÿ ðàáîòû ïðîãðàììû íå ïîëó÷àåòñÿ óñòàíîâèòü áðåéêïîèíòû. Òî÷íåå, íà íèõ íå ïðîèñõîäèò îñòàíîâêà âûïîëíåíèÿ.
  • èíîãäà íå âûêëþ÷àåòñÿ ñ ïåðâîãî ðàçà îòëàäêà. Ñî âòîðîãî ðàçà îòëàäêà îñòàíàâëèâàåòñÿ, íî ê openocd ïîñëå ýòîãî íå ïîäêëþ÷èòüñÿ - ïðèõîäèòñÿ ïåðåçàïóñêàòü openocd.

×åðåç telnet êîìàíäà halt îòðàáàòûâàåò íîðìàëüíî.

Òàê ïîíÿë, íà âñå ýòè ïðîáëåìû îòêðûòû issue íà https://github.com/Microsoft/vscode-cpptools

STM32f205, gcc-4.8.4, cmake, vs code 1.13.1, openocd-0.10.0, macOS 10.12.5
Øàìàíú
Öèòàòà(x893 @ Jun 19 2017, 12:57) *
Àðäóèíî òàì íå ñèëüíî ïðè÷åì. Íàñ÷åò ïëàòíîñòè íå çàìåòèë.
Íóæíà ïðèìåðíî çà òåì æå, ÷òî è îñòàëüíûå IDE.

Íó åñëè òî æå ñàìîå äåëàåòñÿ áåç ïðèâëå÷åíèÿ ëèøíèõ ñóùíîñòåé, òî âîïðîñ çà÷åì PlatformIO òàê è íå ðàñêðûò... Íó ðàçâå ÷òî åñòü æåëàíèå îòïðàâëÿòü òåëåìåòðèþ ðàçðàáîò÷èêàì sm.gif

Öèòàòà(РўРёРјСѓСЂ Ð ÑžÐ Â°Ð Ñ @ Jun 19 2017, 13:01) *
Ó ìåíÿ òàê è íå ðàáîòàåò ïîëíîöåííî îòëàäêà:
  • âî âðåìÿ ðàáîòû ïðîãðàììû íå ïîëó÷àåòñÿ îñòàíîâèòü âûïîëíåíèå íàæàòèåì íà êíîïêó "ïàóçà".
  • âî âðåìÿ ðàáîòû ïðîãðàììû íå ïîëó÷àåòñÿ óñòàíîâèòü áðåéêïîèíòû. Òî÷íåå, íà íèõ íå ïðîèñõîäèò îñòàíîâêà âûïîëíåíèÿ.
  • èíîãäà íå âûêëþ÷àåòñÿ ñ ïåðâîãî ðàçà îòëàäêà. Ñî âòîðîãî ðàçà îòëàäêà îñòàíàâëèâàåòñÿ, íî ê openocd ïîñëå ýòîãî íå ïîäêëþ÷èòüñÿ - ïðèõîäèòñÿ ïåðåçàïóñêàòü openocd.

Ñòðàííî ó ìåíÿ âñå ðàáîòàåò, ïîêàæèòå launch.json. Êàêèå âåðñèè ó Âàñ VS Code è cpptools? Ïî÷åìó gcc òàêîé ñòàðûé (î÷åíü ìîæåò áûòü, ÷òî ïðîáëåìà â ýòîì)?

Ìîæíî â launch.json äîáàâèòü:
Êîä
"logging":
         {
            "engineLogging":true,
         },


È ïîñìîòðåòü, ãäå âîçíèêàåò ïðîáëåìà ñ îáìåíîì ìåæäó îòëàä÷èêîì è IDE.

Ó ìåíÿ ïîñëåäíèå âåðñèè VS Code/cpptools è ïîñëåäíÿÿ âåðñèÿ gcc ñ ARM-developer. Ïðîáëåì ñ îòëàäêîé íåò, â ïîñëåäíåé âåðñèè äàæå ïîôèêñèëè ìåëêèå íåóäîáñòâà.

Åñòü ïðîáëåìû ïî ÷àñòè IntelliSense (òî÷íåå íîâîé åãî ðåàëèçàöèè), ÿ îá ýòîì îáùàëñÿ ñ ðàçðàáîò÷èêàìè - ïîêà ïðè÷èíó íå íàøëè. Âïðî÷åì ìåíÿ è ñòàðûé âàðèàíò IntelliSense âïîëíå óñòðàèâàåò.
timurey
Ñìåíà âåðñèè gcc äî 6.3.1 íå ïîâëèÿëà íà ðåçóëüòàòû.
launch.json:
CODE
{"configurations": [

{
"name": "OpenOCD & gdb",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/build/Src/Aurora",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": false,
"logging": {
"engineLogging":false,
"moduleLoad": true,
"exceptions": true
},
"preLaunchTask": null,
"osx": {
"MIMode": "gdb",
"miDebuggerPath":"/opt/local/arm-toolchain/bin/arm-none-eabi-gdb",
"setupCommands": [
{"text":"-target-select remote localhost:3333"},
{"text":"-interpreter-exec console \"monitor reset halt\""},
{"text":"-interpreter-exec console \"monitor continue\""}
],
"launchCompleteCommand": "exec-continue",
"logging": {"engineLogging":true}

}
}
]
}

Âåðñèè VS Code 1.13.1, ms-vscode.cpptools 0.11.4
Òàê ïîíèìàþ, ïðîáëåìà â ðåàëèçàöèè MIEngine ïîä OSX.
Øàìàíú
Öèòàòà(timurey @ Jun 19 2017, 18:58) *
Òàê ïîíèìàþ, ïðîáëåìà â ðåàëèçàöèè MIEngine ïîä OSX.

Ïî âñåìó äà (ó ìåíÿ äàæå ÷óòü ñòàðåå VSCode 1.12.2 è cpptools 0.11.4, launch.json áåç ñóùåñòâåííûõ îòëè÷èé îò ìîåãî). Åñëè â áàãëèñòå íà cpptools ýòîé ïðîáëåìû åùå íåò, òî ñòîèò íàïèñàòü. ß ïèñàë íåñêîëüêî ðàç, âñå èñïðàâèëè äîâîëüíî îïåðàòèâíî (ÿ ïðàâäà ïðèíèìàë àêòèâíîå ó÷àñòèå â ëîêàëèçàöèè ïðîáëåì), êðîìå ïîñëåäíåé ïðîáëåìû ñ íîâûì IntelliSense.

Íå ïîìíþ ñ êàêîé âåðñèè, íî òåïåðü ìîæíî â launch.json setupCommands ïèñàòü â âèäå îáû÷íûõ gdb êîìàíä, à íå mi-êîìàíä - êàê ïî ìíå, òàê óäîáíåå.

Êñòàòè ïîääåðæêà îòëàä÷èêîì Natvis-ôàéëîâ î÷åíü êëàññíàÿ âåùü.
p_v
Öèòàòà(Øàìàíú @ Jun 19 2017, 17:40) *
Íó åñëè òî æå ñàìîå äåëàåòñÿ áåç ïðèâëå÷åíèÿ ëèøíèõ ñóùíîñòåé, òî âîïðîñ çà÷åì PlatformIO òàê è íå ðàñêðûò...
Åñëè ýòî åùå àêòóàëüíî, platformio îò÷àñòè ðåøàåò íåêîòîðûå íàáîëåâøèå ìîìåíòû ïî óïðàâëåíèþ ïðîåêòîì:
  • êîíòðîëü è âåðñèîíèðîâàíèå çàâèñèìîñòåé
  • ïðîñòîòà óñòàíîâêè òóë÷åéíîâ
  • îáåðòêè äëÿ àâòîäåòåêòà ïîðòîâ ïðîãðàììàòîðîâ (ïðèÿòíî äëÿ ðàçðàáîò÷èêîâ, è âäâîéíå ïðèÿòíî äëÿ êîíå÷íûõ þçåðîâ)
  • ó íèõ òàì åñòü åùå êàêèå-òî ïëàòíûå íàâîðîòû ïî àâòîìàòè÷åñêîìó òåñòèðîâàíèþ íà ðåàëüíûõ æåëåçêàõ, íî ÿ òóäà íå âíèêàë - íå íàäî
  • íó òî ÷òî îíî ñðàçó óìååò âî âñå ïîïóëÿðíûå stm32/avr/esp8266 - íå çíàþ ñòîèò ëè âûäåëÿòü, â ïðèíöèïå ýòî ìíîãî êòî óìååò.
Åñëè âàñ óñòðàèâàåò ïîä÷åðêèâàòü ñâîå "ðàçðàáîò÷åñêîå ìàñòåðñòâî", ïðîïèñûâàÿ â ðåïå çàâèñèìîñòè ñóáìîäóëÿìè è ðó÷êàìè óñòàíàâëèâàÿ êîìïèëÿòîðû - âïîëíå ìîæíî îáîéòèñü è áåç platformio. À åñëè õî÷åòñÿ ÷òîáû ëþáîé ñòîðîííèé ðàçðàáîò÷èê ñ ìèíèìàëüíûìè óñèëèÿìè ïîäíÿë ñðåäó íà ëþáîé îïåðàöèîíêå è íå îòâëåêàëñÿ íà ñóåòó - î÷åíü óäîáíûé âàðèàíò. Ôàêñòè÷åñêè, ïîñëå òîãî êàê îòêðîåòå â paltformio ïðîåêò, îíî ïî êîíôèãó ñàìî âñîñåò âñå ÷åãî íå õâàòàëî.

Êîðî÷å, íóæíîñòü çàâèñèò îò çàäà÷ ïðîåêòà è âàøèõ ëè÷íûõ ïðåäïî÷òåíèé. ß ïåðå÷èñëèë òî ÷òî áðîñèëîñü â ãëàçà, à äàëüøå ðåøàéòå ñàìè. Ó ñåáÿ èñïîëüçóþ, äîâîëåí. Ïðàâäà, íå ñ VScode à ñ Atom, èñòîðè÷åñêè ñëîæèëîñü.
Äëÿ ïðîñìîòðà ïîëíîé âåðñèè ýòîé ñòðàíèöû, ïîæàëóéñòà, ïðîéäèòå ïî ññûëêå.
Invision Power Board © 2001-2025 Invision Power Services, Inc.