Forum Replies Created
-
AuthorPosts
-
supportKeymaster
Hi,
We’ve added a new command called ‘import folder recursively’ to VisualGDB 4.2 that allows importing an existing folder with subfolders. You can get a quick impression of it by looking at our USB tutorial (http://visualgdb.com/tutorials/arm/stm32/usb/). You can just point it to the main project directory and it will add missing files to the project while keeping all the folder structure. Does that suit your needs or do you want something more sophisticated?
supportKeymasterIntelliSense include directories are usually stored in the absolute form. You can see the exact form of them by looking at Visual Studio (not VisualGDB) project properties on the NMake page. If they contain absolute paths, you can change them to using $(ProjectDir) or modify them to point to the new location.
supportKeymasterHi,
IntelliSense directories are stored in Visual Studio Project Properties. The fastest way to copy them is to open the VS properties window, go to the NMake page and copy/paste them there.
supportKeymasterYes, we are working on an independent clang-based C++ IntelliSense engine, but it is not included in VisualGDB 4.2 and will be available at a later point.
supportKeymasterVisualGDB automatically updates the list of all sources in Makefile, however it does not support excluding files for separate configurations yet. You won’t need to add all source files manually, you will only need to specify the files you want to exclude.
supportKeymasterHi,
Stdlib uses the space past the ‘end’ symbol to allocate buffers. BTW, we have updated our toolchain to include newlib without the standard syscall implementations. This should make it easier to define your own functions like _write() and control how exactly the IO is performed. Have a look at this tutorial: http://visualgdb.com/tutorials/arm/stm32/uart/ (note that you will need VisualGDB 4.2 beta 1 to use the raw terminal and the memory explorer).
If you want to hack the standard library further, you can get newlib sources, and rebuild it using MinGW and our toolchain:
mkdir newlib-build && cd newlib-build ../newlib-2.0.0/configure --target=arm-eabi --prefix=/c/SysGCC/arm-eabi --disable-newlib-supplied-syscalls
Note that the build may take up to a day to complete, as the libraries will be built for each supported core.
supportKeymasterHi,
KGDB does not support debugging over network. The option you are mentioning is provided if you are using a VM that maps a guest COM port to a TCP connection on the host side or want to use a hardware COM-to-TCP bridge. In either way, the final connection to the target machine would still go through a COM port, so there is no performance benefit of mapping it to a TCP/IP port.
supportKeymasterHi,
How do you want to map a physical serial port to a tcp/ip port? Do you mean using a separate Linux machine connected to your target machine via a serial port and the development machine via ethernet?
supportKeymasterHi,
This is a recently added feature that was added to VisualGDB 4.2 that is currently in beta stage. Please install the latest beta to use it.
supportKeymasterYou can add exclusion lists to Makefile:
ifeq($(CONFIG),DEBUG) EXCLUDED_FILES = file1.cpp file2.cpp endif
And then add the following code instead of the source_obj1 line:
all_source_files_filtered := $(filter-out $(EXCLUDED_FILES),$(all_source_files_filtered)) source_obj1 := $(all_source_files_filtered:.cpp=.o)
supportKeymasterHi,
Unfortunately this is not possible with the current model. VisualGDB tries to simplify editing the settings, so it relies a lot on the ‘current project’ concept when displaying the properties (e.g. substitutes variables). To support editing multiple projects at once, we would have to add a completely different mechanism of editing them, and that is currently a too big investment for us.
You could try referencing environment variables from your projects using the $(VarName) syntax. Alternatively you can make a mini-tool for editing the properties you want. VisualGDB stores its properties in XML files with .vgdbsettings extension. Those files contain XMLSerializer-generated objects from the VisualGDB.exe assembly, so you could easily automate changing them. Let us know if you want some code examples.
supportKeymasterHi,
Yes, this is possible. The easiest way would be to edit the Application.mk file and replace APP_ABI := all with APP_ABI := armeabi.
You can also try VisualGDB 4.2 beta 1 that allows selecting ABIs in the project wizard.supportKeymasterThe GCC compiler does not have a concept of “stack size”. It uses all space between the end of data and _estack as the stack. If you want to reserve a certain amount for the stack, you can define an array of that size, put it to a separate section and modify the linker script to place it after the data. In that case if the overall amount of used memory exceeds the device SRAM size, you will get a linker error.
supportKeymasterHi,
In order to replace the newlib’s implementation of _write() with your own one you would need to recompile newlib itself. If you don’t want to do it, you can hook it dynamically:
static int my_write(struct _reent *, _PTR, const char *buf, int len) { ... } int main() { stdout->_write = my_write;
stdout->_flags |= __SNBF;
printf("Hello...");
}
supportKeymasterHi,
Based on our quick tests, clang produces executables that can be easily debugged with gdb. As lldb is not backward-compatible with gdb/mi and uses its own API, support it would be quite an investment. If you could give a good overview about the advantages it would have over using gdb for debugging llvm-compiled code, we could see if we could support it soon.
-
AuthorPosts