Forum Replies Created
-
AuthorPosts
-
VladParticipant
Also after we canceled last order this plugin was removed from VS. We continue work in Atmel studio and VS was not used.
Current plugin I installed few days ago. Why does it show the old cancelled order if it is newly installed? And again why it does not allow to enter a new key?
Please advice
VladParticipantThat was our purchase back in February when we tried to use it for NXP RT series but VisualGDB had problems with that series and later we encountered other problems with that MCU whence dumped it and order was canceled and refunded.
This purchase is new , aimed to be used with STM32H7 MCU which I know you support well, transaction done two days ago order number 723904513 . Also my attempt to enter a new key into VisualGDB failed – it shows the old order and status “canceled ” while rejecting the entered key.
Is that a reason why your system does not show the current purchase? Then please advice how to update the key?
If you need to see my current invoice let me know, I can send it to your “support” email.
- This reply was modified 3 years, 6 months ago by Vlad.
VladParticipantI purchased license last Monday (May 10, 21) attached is a screenshot of a confirmation email (which has activation key not shown) . Notice : My name is shown as a recipient. The billing name and address are different. But I suppose all the contacts you expect with recipient as a user of this product.
Let me know if you need to see my invoice from Digital River to fix your records.
Vlad Blanshey
Attachments:
You must be logged in to view attached files.May 12, 2021 at 18:04 in reply to: The best method to create STM32CubeMX based large project in VisualGDB? #30494VladParticipantHello, @support thank you for your input. Only one case in your provided link relates to the CubeMX created project – the Imported STM32CubeMX Project that is probably similar project structure to the scratch-built STM32CubeMX project. According to that tutorial:
The only VisualGDB-managed file will be the startup_stm32xxxx.c file containing the interrupt vector table
No HAL , neither middleware packages are used from VisualGDB in these cases. Only startup file. Is that duplication the most often reason for the problems you mentioned? If so happens, can one file be simply deleted?
Built from scratch STM32CubeMX project been CMake project has quite different structure (and probably handling) from MSBuild … I’d better consider for the start importing a STM32CubeMX (GPDSC) or STM32CubeIDE project (configured with .ioc file) which is MSBuild and then keep adding to it and use CubeMX for re-configuration… so, only to make sure to have only one startup file ?
Vlad.
- This reply was modified 3 years, 6 months ago by Vlad.
VladParticipantAttached here is a properties window for the “undiscovered” new file Benchmarker.c located in Utilities\ folder.
Interestingly, it is shown “included in project” and it’s full path is correct , but it’s relative path is a junk. Relative path suppose to be Utilities\Benchmarker.c . I guess this property was created when I added folder in the “folders” project view (not a “solution” view which does not have option to add a folder)
Seems to be a bug.
Attachments:
You must be logged in to view attached files.May 12, 2021 at 13:46 in reply to: The best method to create STM32CubeMX based large project in VisualGDB? #30486VladParticipantThank you arrow201 for sharing. I used to do something similar to your way about 2 years ago when we used STM32F4 MCU. I am still annoyed today with their “tradition” of re-configuration of user’s files and putting guards USER CODE STARTS HERE … ENDS THERE … nonsense … as if it is too hard to separate users’s only files from system configurable files and also allow users to use files comparison before commit…
As for the topic: back then I did part of development in VGDB and manually pasted CubeMX re-configured updates into the VGDB project. It was fine until project became large requiring more peripherals and managing their configuration became time consuming. Even re-allocating resources between shrinking choices of available pins became time consuming. To focus on application I need simple and easy tool for reconfiguration and I need IDE which simplifies toolchain-related tasks.
Tools like IAR and Keil are out of question for many reasons besides the price tag: when using subcontractors – those all have GCC/Eclipse environment in whatever OS and we are ready for a simple integration…
As for IDE – Visual Studio with GCC is the sweetest combination and VisualGDB strikes the best niche … As for the simple way to (re)configure ARM peripherals, the STM32CubeMX is one of the three best tools on the market today… got to tolerate some nuisances in it (all of them have )…
Thanks again for your input.
Vlad
VladParticipantCan you show your compiler properties entry with all C/C++ compiler flags ? What file is it in ?
For ex. I am curious to see “_STDC_” and similar flags related to the version of “C”… those define the actual flow of scanf() …
VladParticipantThank you for reply.
As I reported, when I replace scanf() with _read() , it calls my new version of _read() so it is compiled in (it cannot be that with the same compilation flags one function calls one version of _read and another function would call another version…) apparently _read() is not called by scanf() at all … but I could see from stepping through scanf() that it goes through different functions depending on the flags…. this I believe is different between our environments.
VladParticipantInteresting thoughts brought about from stepping through inside scanf() function…
This function implementation is a huge bulk of the code, most of it has nothing to do with formatting or data transfer but rather with multitude of macros and #ifdef’s trying to reconcile different versions of “C”… (and “C++” just adds another layer on the top), making the code practically non-readable unless you dedicate many hours or days on just digging scanf() alone 🙂 And this makes setup compilation flags are kind of high art….
I wonder how much benefits programmers gain from introducing one more layer of compiler’s complexity when they choose “C++” compiler (to the weel overloaded versions of “C”)? Even considering the benefits of the OOP … Notice I am not even taking into consideration the additional complexity of correctly using “C++” to eliminate many bugs programmers get from messing with C++ peculiarities, I am only talking about possibility of messing with compilation flags and compiler-related code peculiarities while using both C and C++ ….
I doubt there are so many benefits to justify so many more chances to mess up… this is yet one more example how we, trying to make our lives easier, make it much harder instead 🙂
- This reply was modified 6 years, 3 months ago by Vlad.
VladParticipantHello, – why am I not getting replies to my posts in email? I don’t see a possibility of setup email in this forum…
Anyways, thank you for the advice how to debug USB code. I did this and here are my findings:
scanf() never calls redefined _read()
in fact _read() is indeed redefined in code and I did verified this fact but scanf() goes running without calling it.
I put breakpoint in _read() – it never triggered . Breakpoint put in redefined _write() indeed gets called when doing printf().
I did yet another test: I replaced scanf() with the followingchar val; _read(NULL, &val, sizeof(val));
this changed code works: waits for input and shows each character printed in dec and hex. Again – scanf() does not call any of redefined functions (neither those original) . Stepping into scanf() and following all commands is daunting task – steps forever into many functions inside scanf() never coming to _read()….
I see two probabilities here making my run different from yours: either you are not using newlib-nano “C” library or, if you do use newlib-nano, then some of your compilation flags are different from mine… for ex. my setup uses _STDC_ and _HAVE_STDC flags, do you ? In other words the “C” library string input functions (probably all input formatting functions) in my setup don’t use _read() and therefore they are not overwritten. Also another flag – I did not choose semihosting option for obvious reasons – I don’t use semihosting…. What other flags could be different and what function should be overwritten additionally to those provided in your code?
Can you please verify this?
- This reply was modified 6 years, 3 months ago by Vlad.
March 15, 2018 at 19:09 in reply to: Imported IAR project failed: startup_stm32f401xe.c errors #20436VladParticipantWhen I added macro DEBUG_DEFAULT_INTERRUPT_HANDLERS to C/C++ preprocessor (useful for DEBUG configuration only, not good for release), all above “invalid conversion” errors vanish, new 3 errors came up – see attachment.
“Multiple definitions” of Reset_Handler and Default_Handler could be a result of two files with the same name: startup_stm32f401xe.c from STM32Cube distribution and from sysprogs. Is it so?
And the last line “ld returned 1 exit status” from collect2.exe file ?
Attachments:
You must be logged in to view attached files.March 15, 2018 at 18:33 in reply to: Imported IAR project failed: startup_stm32f401xe.c errors #20432VladParticipant“Invalid conversion” fixed as per your advice. 65 errors left “aliased to undefined symbol” .. See screenshot. Looks like confusing syntax. Default handler() function is indeed declared and defined in the same file.
If macro DEBUG_DEFAULT_INTERRUPT_HANDLERS were defined (see 2nd screenshot), then above error producing lines would not be included for compilation within ifdef…else… statement:)
- This reply was modified 6 years, 8 months ago by Vlad.
Attachments:
You must be logged in to view attached files.VladParticipantGreat. Thank you
March 15, 2018 at 02:04 in reply to: Imported IAR project failed: startup_stm32f401xe.c errors #20411VladParticipantThis reported problem has been fixed by importing anew the same project with checked <span style=”text-decoration: underline;”>“exclude the startup file from project”</span> in the device selection window. Missing headers were added by clicking ADD and project was built successfully with no errors the blinking GPIO example from STM32F4Cube distribution for STM32F401RE-Nucleo board.
But download to target and running fail in both configurations.
Running DEBUG configuration message: “Warning: could not set a breakpoint on main. ‘Step into new instance” will not work “. Execution stopped outside of the “main” memory stack so VGDB could not help showing the stack content.
All debug stepping toolbar commands are dimmed. LED on the Nucleo board shows that communication with PC is in process. When DEBUG session stopped Nucleo LED shows communication with PC is finished but user LED is not blinking as expected from the downloaded program. Clearly program was downloaded to target but failed to run.
When executing “Program and Start without debugging” – program gets downloaded as shown by the board’s ST-LINK LED and download finishes, but user LED does not blink as expected.
Apparently executable was not built properly. Please help.
- This reply was modified 6 years, 8 months ago by Vlad.
VladParticipantThank you . I got a complete answer. Before trying that tutorial link you provided I will first try again import from IAR and Keil because those projects are prepared in all STM32Cube demos we need and VGDB has a direct automated import procedure for them. Whence it makes sense that you don’t see importing from SW4TM32 projects as a priority. Yet, taking into consideration that STM purchased Atollic and will use their IDE for a direct in-house support of their MCUs, it probably will make sense for VGDB to add Atollic as a choice for automated import to VGDB.
Hint: I saw a statement made by STM marketing rep that STM will eventually merge Atollic with SW4TM32 as they both based on the same toolchain and Eclipse components
Thank you again. Your help encourages us to have the convenience of VS for our STM32 based development
- This reply was modified 6 years, 8 months ago by Vlad.
-
AuthorPosts