Hi there,
We're evaluationg to use your ide in our new product .. are you interest to our contribution to your project and viceversa ?
This is my post : http://www.virtualrobotix.com/forum/topics/what-ide-do-you-prefer-for
Regards
Roberto
Multipilot32 support Maple IDE
(15 posts) (4 voices)-
Posted 5 years ago #
-
Great project! shoot us an email at info@leaflabs.com, we would love to contribute to an autopilot project.
Also, regarding you forum thread on your website about environments. I should point out that in addition to the IDE, you can use Maple and the library and toolchain completely from the command line using Make.
Posted 4 years ago # -
Hi Poslathian i write a mail :) I need more support on i2c lib .. i try the software i2c revision of lib but don't work .. there is an hw lib available for doing some test ? Is not available an alfa revision?
regards
RobertoPosted 4 years ago # -
I have also been trying to use the software I2C without success with an I2C EEPROM... not sure what questions to ask here, though. :-)
I have not used a logic analyzer on it yet.
Posted 4 years ago # -
I doing a lot of test but i2c soft don't work ... so i try to use the bootloader for try your ide on high density micro I use STM32F103VET6 , I'm compile and loading fine the bootloader on flash but when try to use it the usb is not recognized. Do you think that native version of bootloader can work ?
Regards
RobertoPosted 4 years ago # -
The high density devices (ZE, and RE, perhaps RV? series (see edit note)) require some minor changes to the bootloader in order to function properly.
Besides the expected changes youd need from adjusting pinmaps and that sort of thing, high density devices have 2KB flash pages (instead of 1KB flash pages on the RB series). We have the necessary modifications for an RET6 chip in the audio-boot branch of the maple-bootloader repo on github.com/leaflabs
Obviously, the audio-boot branch has some other changes you will need to revert regarding pin locations - which can be seen in config.h (LED, and BUTTON) and usb.h (USB_DISC pin).
Also, if you experiment with other chips and boards, dont forget libmaple also is "MCU-aware" and you should take care to add the appropriate new configurations to libmaple.h (in libmaple) and boards.h (in wirish)
EDIT - I Meant RE,ZE,and RB. I dont know what RV is.
Posted 4 years ago # -
I try to upload the bootloader for native board on Ardupilot32 and i found my board on usb ... but when i try to compile the code i have a lot of error .. i think that ide 0.9 is not yet ready for high density micro this is the error :
Going to build using 'armcompiler' (ARM)
Compiling core...from C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\ext_interrupts.c:31:
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:270: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'PIN_TO_EXTI_CHANNEL'
from C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\ext_interrupts.c:31:
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/io.h: In function 'toggleLED':
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/io.h:190: error: 'BOARD_LED_PIN' undeclared (first use in this function)
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/io.h:190: error: (Each undeclared identifier is reported only once
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/io.h:190: error: for each function it appears in.)
Listing of all compiler output follows.
Note: <BUILD> stands for the temporary build directory used to compile your sketch, which is:
C:\DOCUME~1\Roberto\LOCALS~1\Temp\build1229509458575112209.tmpAlso note that because of preprocessing, line numbers won't match up exactly. We're working on a fix.
In file included from C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/wirish.h:35,
from C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\ext_interrupts.c:31:
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:193: warning: initialization makes pointer from integer without a cast
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:205: warning: initialization makes pointer from integer without a cast
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:211: warning: initialization makes pointer from integer without a cast
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:218: warning: initialization makes pointer from integer without a cast
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:220: warning: initialization makes pointer from integer without a cast
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:222: warning: initialization makes pointer from integer without a cast
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:224: warning: initialization makes pointer from integer without a cast
C:\Documents and Settings\Roberto\Desktop\lavoro\maple-ide-0.0.9\hardware\leaflabs\cores\maple\/boards.h:226: warning: initialization makes pointer from integer without a caThe other problem is that i dont found only dfu peripherial and not serial when reset the board . Normaly with Maple V5 instead i see serial and dfu.
I try Xduino on my board and it work ,too but i like your ide and i would to support it if is possible ;)
Regards
RobertoPosted 4 years ago # -
ahh...yes you are correct, the IDE 0.0.9 is not configured correctly for use with the RET6. This is coming, however. We already have a few branches of libmaple that use RET6, but I cant commit at this point to exactly what release will have high density support.
Posted 4 years ago # -
My Revision of Micro is STM32F103VE , do you have an a revision of ide available in your repo for try to compile the code succesfully ?
Posted 4 years ago # -
We don't have any boards in production or planned which use that chip, and supporting it would mean changes to the bootloader, libmaple, and the IDE itself, which we don't really have time to do right now.
However, like with any open source project, you could try doing it yourself; the STM32F103VE seems similar enough to the STM32F103ZE (which is on Maple Native) to make it worth a shot.
You'd have to start by appropriately modifying config.h in the bootloader; the native-boot branch is probably the best place to start looking:
https://github.com/leaflabs/maple-bootloader
The bootloader expects a dedicated USB_DISC pin, as well as pins for a button and a built-in LED (you could probably get away without these).
You'd then need to modify libmaple/libmaple.h and wirish/boards.h in libmaple. I pushed support for our Maple Native prototype into master last night, so that'll give you a place to start:
https://github.com/leaflabs/libmaple
If you do end up successful, let us know; we'd love to fold your patches in!
Posted 4 years ago # -
Hi Mbolivar,
thanks for your support :) So I upload the bootloader and i see the dfu available on usb , i try to change the position of flash led but it don't flash i check in setup of led but is hardcoded so is not only change the macro :)
I have the led on PB7 what is right configuration ? So the file is uploaded correctly but at the end of upload don't work ..
Sorry but i have a doubt where i need to put new libmaple in MapleIde 0.9 in what directory ? I need to add native board in IDE correct ? I don't use standard maple ?
Regards
RobertoPosted 4 years ago # -
roberto, apologies for all the hardcoded LED/button refs in the bootloader. This has since been improved, and we will be pushing it into the master bootloader branch soon. You can see the exact changes in the native bootloader here:
https://github.com/leaflabs/maple-bootloader/tree/native-boottake a look in hardware.c and config.h and usb.c/h youll notice all the hardcoded calls for button/led/usb_disc setup are now macro-ified so you can just make the changes in in the config file. Its not perfect though, you still need to do a little work setting up the value for the macros. For example to get the LED on pb7 youll want to first adjust the setupLED() function to look like that of the native branch. Then youll want to go to config.h and edit the LED params to this:
#define LED_BANK GPIOB
#define LED 7
#define LED_BANK_CR GPIO_CRL(LED_BANK)
#define LED_CR_MASK 0x0FFFFFFF /* move the zero to the location of pin num % 8 */
#define LED_CR_MODE 0x10000000 /* move the 1 to the location of pin num % 8 */
#define RCC_APB2ENR_LED 0x00000008 /* enable PB */The CR_MASK and CR_MODE are a bit cryptic, basically a "0" in the mask field will specify you are adjusting the pin whose config is in that position in the 32 bit register, there are 8 pins in configured in that register, GPIO_CRL(GPIOB), so the 8th number should be 0. The 1 in CR_MODE is positioned the same way. 1 means output push-pull, 5 means open drain, 4 means input digital.
Posted 4 years ago # -
Hello Dear Friends :)
So now the led flashing .. :) I have some problem ... the bootloader upload the firmware but at the end continue to flash ... i found the problem in check_user_code. If i force at true the led finish to blinking but the program don't start :( I think that i have some problem at the start ... now i force the same address for ram and for flash ..
In my hardware i havent disc, havent check of usb connection and havent the button for ram upload . Tommorrow i try to patch the hardware .. do you have some idea ?
How work the check_user_code ? And Jump_start_code ? Normaly if i upload the code from serial port it start from 0x800000000 in flash i see that your start code is different.
I think that you reserv a part of flash for your custom bootloader.. correct ?
Regards
RobertoPosted 4 years ago # -
Hi Roberto,
That's correct, we keep the start addresses of user code in RAM and Flash, respectively, in the defines
#define USER_CODE_RAM ((u32)0x20000C00)
#define USER_CODE_FLASH ((u32)0x08005000)In main.c, we call checkUserCode() with those two addresses. The assumption is that the vector table lives at the start of one of those addresses, so checkUserCode() is testing whether or not the value at *(u32*)USER_CODE_RAM (or USER_CODE_FLASH) is a valid stack pointer, by making sure that, interpreted as an address, it lives in SRAM (which on the Maple occupies the 20KB starting at the SRAM start address, 0x20000000).
You should be able to modify those two #defines with whichever starting addresses you use to upload code to, being careful not to overwrite the bootloader itself.
Anyway, if a valid stack pointer is found either in RAM or Flash, jumpToUser() is called, which looks at the exception at position 1, or offset 0x4; this is the reset exception; i.e., a pointer to the user's main(). It casts that to a (void*)(void), tears down the bootloader, resets the stack pointer to where the user said it should go, then calls the user's main.
See the ARM Cortex M3 Technical Reference Manual, Ch. 5, for more details on the exception table's layout in memory.
Hope this helps!
Posted 4 years ago # -
Also, make sure that the binary you are compiling is linked according to those addresses (USER_CODE_RAM/FLASH). if youre working from the IDE/libmaple, this happens automatically with the linker scripts we use (unless you run $>make jtag). You cannot just load code anywhere into the address space without properly indicating to the linker the value of USER_CODE_FLASH/RAM. To do this, take a look at libmaple/support/ld/maple_*/(flash-jtag-ram).ld where these values are coded.
Again, libmaple should do this for you automatically, and the bootloader expects code to be linked against the addresses marti provided.
Posted 4 years ago #
Reply
You must log in to post.