Jurkins Marts 14, 2021 Share Marts 14, 2021 Oj! Toč. 6. versija. Es uzinstalēju un kaut kā pat neapskatījos, vai pēdējā versija. Sākšu ar to. Varbūt tur arī būs risinājums, kaut daļējs. Paldies par meikfailu, apmēram sāku iebraukt. Pastudēšos. Pārkpmpilēt visu ar g++, vai Tu domā arī c failiem gcc vietā ierakstīt g++? Link to comment Share on other sites More sharing options...
AndrisBB Marts 14, 2021 Author Share Marts 14, 2021 Pirms 8 minūtēm , Jurkins teica: Pārkpmpilēt visu ar g++, vai Tu domā arī c failiem gcc vietā ierakstīt g++? Tieši tā. Ne velti tur visos .h failos ir #ifdef __cplusplus extern "C" { #endif Tas (tas headers) gan neattiecas tieši uz c failu kompilēšanu ar g++, bet nu sava saistība ir. Link to comment Share on other sites More sharing options...
Jurkins Marts 14, 2021 Share Marts 14, 2021 (labots) Ja mēģinu ar g++ nokompilēt main.cpp, tad izmet šitādu: Spoiler c:/arm/mcu/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld.exe: c:/arm/mcu/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o): in function `_kill_r': signalr.c:(.text._kill_r+0xe): undefined reference to `_kill' c:/arm/mcu/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld.exe: c:/arm/mcu/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libc_nano.a(lib_a-signalr.o): in function `_getpid_r': signalr.c:(.text._getpid_r+0x0): undefined reference to `_getpid' collect2.exe: error: ld returned 1 exit status make: *** [Makefile:183: build/project_4.elf] Error 1 The terminal process "cmd.exe /C make -s -j 10 all" terminated with exit code: 2. 183. rinda 182 $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile 183 $(CC) $(OBJECTS) $(LDFLAGS) -o $@ 184 $(SZ) $@ Labots Marts 14, 2021 - Jurkins Link to comment Share on other sites More sharing options...
AndrisBB Marts 14, 2021 Author Share Marts 14, 2021 skat. ieteikumu par suscalls.c pielikšanu Vai arī kompillē libc_nano bez syscalliem 1 Link to comment Share on other sites More sharing options...
Jurkins Marts 14, 2021 Share Marts 14, 2021 Ou! Toč, palaidu garām to syscall.c. Paldies! Viss funciklē. Link to comment Share on other sites More sharing options...
AndrisBB Marts 14, 2021 Author Share Marts 14, 2021 (labots) Ja tu syscallus neizmanto, tad kompilē bez. Tāpat jau neviens no viņiem manā piemērā nemaz nav implementēts. Bet nu ja paskatīsies manus iepriekšējos video, tad redzēsi ka viņi vajag, lai piemēram dabūtu printf darboties utt. Lielākā daļa gan aktuāli tikai ja lieto ar OS. Ja plāno izmanto malloc utt, tad gan bez caddr_t _sbrk(int incr) neiztiksi. Piemēram tas pats par ko viņš dusmojās - signalr.c:(.text._getpid_r+0x0): undefined reference to `_getpid'. Ja tev nav OS, tad kāda tur var būt runa par PID (Process ID). Slinkums meklēt, kāds bij flags ganjau vari pats atrast. Labots Marts 14, 2021 - AndrisBB 1 Link to comment Share on other sites More sharing options...
Jurkins Marts 14, 2021 Share Marts 14, 2021 (labots) Nu pirmais solis jau bija piedabūt, lai vispār strādā. Kaut kā pavisam cits ir, ja GUI jāizvēlās tie flagi vai šeit jāieraksta pašam.😁 Meklēdamies atradu šitādu. Ja pareizi saprotu, tad tur ar roku nevajag, piemēram, pievienot jaunu failu. Labots Marts 14, 2021 - Jurkins Link to comment Share on other sites More sharing options...
AndrisBB Marts 14, 2021 Author Share Marts 14, 2021 Ja vien tu diendienā nenodarbojies ar Meikfailu rakstīšanu/rediģēšanu, tad neredzu baigo jēgu tur iedziļināties. Ja strād;a, tad strādā. Ja gribi kautko rakstīt no nulles, tad ir pietiekami daudz interesantākas un modernākas alternatīvas, kautvai https://waf.io/ Bet tad viss lielākiem projektiem, te pietiek ar 3 rindu meikfailu. Lielāka jēga fokusēties uz kodu. 1 Link to comment Share on other sites More sharing options...
Jurkins Marts 14, 2021 Share Marts 14, 2021 pirms 2 stundām , AndrisBB teica: Lielāka jēga fokusēties uz kodu. Piekrītu, bet tomēr būtu bišķi jāsaprot, kur ieslēgt optimizāciju vai uzlikt -std=c++17 un tamlīdzīgi. Link to comment Share on other sites More sharing options...
AndrisBB Marts 14, 2021 Author Share Marts 14, 2021 (labots) Kam tev vispār C++ uz STM32? Neredzu īpašu jēgu. Tāpat visas bibliotēkas utt ir Cun ja arī rakstīsi C++, tad tas vairāk būs kā C ar klasēm, jeb C+. Nekādas īpašās C++ fīčas jau tāpat neizmantosi. Tak nelietosi tur Vectorus un C++ stringus, templeotus un lambdas. (Cerams domu saprati). Ja tīri ziņkārības pēc, tad es drīzāk paskatītos ko var izdarīt ar Rust. Tagad pa brīvo laiku esu sācis vairāk iedziļināties iekš Zephyr OS prieks STM32 (un citiem), pašam interesē un darbā esu pielikts kā "skatītājs no malas" un sanity/koda reviewers 2 projektiem, kas kā reiz uz tās OS. Pagaidām gan tikai sēžu un klausos, sad tad kādu ideju no Linuxa iesviežu Labots Marts 14, 2021 - AndrisBB Link to comment Share on other sites More sharing options...
Jurkins Marts 14, 2021 Share Marts 14, 2021 Pirms 16 minūtēm , AndrisBB teica: Kam tev vispār C++ uz STM32? 😁 Process patīk. Zinu, ka esmu ar dīvainībām 😁. Kamēr slimoju ar kovidnieku izbraucu cauri šim. Šo to pārrakstīju savādāk. Šur tur vēl tupiju. 😁 Bez c++ nekā. Tu jau reiz šo avotu nokritizēji 😉, ka galīgi garām. Bet man patīk. Nodefinēju virtuālo (ja tā var teikt) portu: VPort<Pb4, Pb5, Pd7, Pc1> LCD; Uz plates būtu vienkāršāk savilkt, piemēram, ja Pd7 vietā būtu Pc6. Nav problēmu. Pamainu tikai Pd7 uz Pc6. Un kode ģenerējas tāds, ka gandrīz kāds asmā būtu kodējis (tas gan mūslaikos laikam nav svarīgi). Nu vot patīk un viss. Gribu tagad paņemties līdzīgi ar stm32 (zinu, ka izgudroju velosipēdu). Nu tāds amatieris-dīvainis 😁. Bet vispār jau paņem kaut kādu sensoru. Biblene uz c++... Pie tam vēl "#ifdef Arduino... , #ifdef mbed... Link to comment Share on other sites More sharing options...
Jurkins Marts 20, 2021 Share Marts 20, 2021 Sveiks, @AndrisBB! Klau, a bet iekš vscode var kaut kādā veidā debagošanas procesa laikā paskatīties, assemblera kodu līdzīgi kā CubeIde logs "disassembly" vai pat vecajam labajam AtmelStudio? Link to comment Share on other sites More sharing options...
AndrisBB Marts 20, 2021 Author Share Marts 20, 2021 (labots) Ja tu pie C flagiem pieliec -save-temps, tad viņš build folderī saglasās arī *.s failus. =obj saglabā blakus .o failam,bet nu vari jau arī norāīit kur citur, piemēram blakus .c failam. Skaties -dumpdir ./. optionu. CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections -save-temps=obj Reku plugins, neizskatās diezko labi nostrādāts, bet itkā darbojas. https://marketplace.visualstudio.com/items?itemName=dseight.disasexpl Tik pamaini settingus kur meklēt .s failu. Vai arī liec .s failu blakus .c failam un tad jāiet pa defaulto. Es fiksi izmēģināju šādi, slinkums meklēt kāds ir mainīgais priekš build foldera "disasexpl.associations": { "**/*.c": "/home/andris/Documents/Projects/OV7670/FreeRTOS_OV7670_Capture/build/${fileBasenameNoExtension}.s", "**/*.cpp": "/home/andris/Documents/Projects/OV7670/FreeRTOS_OV7670_Capture/build/${fileBasenameNoExtension}.s" } Labots Marts 20, 2021 - AndrisBB Link to comment Share on other sites More sharing options...
AndrisBB Marts 20, 2021 Author Share Marts 20, 2021 (labots) Vēl jau tam Cortex-Debug pluginam ir iespēja apskatīt Assmbly https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug Paskaties Dissasambly sekciju aprakstā. Strādā ar kautkā dīvaini, bet strādā. Labots Marts 20, 2021 - AndrisBB 1 Link to comment Share on other sites More sharing options...
Jurkins Marts 20, 2021 Share Marts 20, 2021 Paldies! Tas Cortex-Debug strādā. Tiešām dīvaini, bet strādā. Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!