-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Please add support for Keil #877
Comments
Please let the Pico team concentrate on what they should do. They don't have sufficient resources to add support for MDK. For MDK support, please try this one: |
Hi
But you are under valuing the Keil tool chain, if you add support for it, I
guarantee your sales would be boosted by 2-3X
Best Regards
…On Fri, Jul 1, 2022 at 4:19 AM Gabriel Wang ***@***.***> wrote:
Please let the Pico team concentrate on what they should do. They don't
have sufficient resources to add support for MDK.
For MDK support, please try this one:
https://github.com/GorgonMeducer/Pico_Template
—
Reply to this email directly, view it on GitHub
<#877 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AECNZSP5ZPJJDUVOS7IZAUDVRYW7XANCNFSM5ZMAQAMQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
--
دوست دار شما
علی اسدزاده
|
That is a very ambitious claim since you don't actually know what our sales actually are... We are looking in to alternative toolchains. |
I've been using Keil for more than 10 years,and it's the standard tool for
Cortex M development, and I know they have many users, also they have
released the free version a few months ago, before that we had many many
many users with cracks! So I think My guess is not that ambitious.
I hope you would assign some team members to add the official support for
keil too.
Best Regards
…On Sun, Jul 3, 2022 at 2:28 PM James Hughes ***@***.***> wrote:
That is a very ambitious claim since you don't actually know what our
sales actually are...
We are looking in to alternative toolchains.
—
Reply to this email directly, view it on GitHub
<#877 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AECNZSK74SEMLZZU5FC67FDVSFP5HANCNFSM5ZMAQAMQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
--
دوست دار شما
علی اسدزاده
|
I am also interested in Keil support as I am heavy user of Keil for STM32 and so on. I tried some some you can find here: So some ground works is already done... |
This is being looked in to. We do need support from ARM for certain things, which they will not be able to provide until the end of the year, unfortunately. In the meantime, lots of the toolchain already works. |
Thanks, for the update, I hope we will see the official support sooner.
Regards
…On Thu, Jul 14, 2022 at 1:05 PM James Hughes ***@***.***> wrote:
This is being looked in to. We do need support from ARM for certain
things, which they will not be able to provide until the end of the year,
unfortunately. In the meantime, lots of the toolchain already works.
—
Reply to this email directly, view it on GitHub
<#877 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AECNZSNBVSYSOWVSGOHGDMDVT7GLVANCNFSM5ZMAQAMQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
--
دوست دار شما
علی اسدزاده
|
I wonder if there is any update on this issue available. |
@bgolab, The latest version of Pico-Template now supports flash downloading in MDK. |
Dear Raspberrypi/Pico-Sdk
Hi,
Thanks for the update.
Best regards
…On Wed, Mar 15, 2023 at 11:24 PM Gabriel Wang ***@***.***> wrote:
@bgolab <https://github.com/bgolab>, The latest version of Pico-Template,
now supports flash downloading in MDK.
Please feel free to have a try.
—
Reply to this email directly, view it on GitHub
<#877 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AECNZSPBAIJ4YM4EG272E4TW4IM5XANCNFSM5ZMAQAMQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
--
دوست دار شما
علی اسدزاده
|
We have now released an RP2xxx_DFP, which should work as a CMSIS solution for Keil tools. Feel free to give that a go and see if it works for you |
Thank you for letting me know. I wonder if you tested the PICO basic example (the one delivered within DFP) on Keil with Community Licence enabled: I use fresh Keil 5.39.0.0 installation with the Community License activated as per the link above. In my case I got to many compilation errors to proceed. I wonder If you could share some details how this basic example was tested. Thank you. |
It has been tested in Keil uVision 5.39.0.0 with the Community License on Windows 11 and works fine, with no compilation errors. Did you install the DFP through the Pack Installer, and then copy the example from that? The test process was simply to install uVision, use the Pack Installer to install the DFP, and then use the Pack Installer to copy the example and build/run it |
Yes, I followed standard approach through the Pack installer then copied the basic example like I do for other MCUs like STM32. Win10. Did you install all optional components available in the Pack Installer? I mean optional stuff like tensor flow etc? Will try again then. Thank you. |
I didn't install anything other than the RP2xxx_DFP, so no other optional components. The example project has the required components for it selected by default, which are
The Event Recorder is just for the retargeted stdout so it can be read over the SWD connection |
I tried to compile the PICO example and got 92 errors with repeating sections like this: Maybe your setup had some packs already installed - before you started Keil installation - when you remove the Keil uVisions the packs are NOT removed automatically... |
I have just retried these steps on a clean Windows 11 install, and it worked fine, so I'm not sure what's causing your issues |
@bgolab Which cmsis version do you use? I can replicate the issue you encountered. Please select cmsis 5.9.0 as a workaround. |
@GorgonMeducer Related to #1710 , or is that something entirely different? |
@lurch Sorry, after double check, it is the same. But there are something missing as shown here: |
@bgolab @will-v-pi I have created an fixed pack, please have a try. RaspberryPi.RP2xxx_DFP.0.9.5-dev.pack.zip NOTE: this isn't an official release. After install this cmsis-pack, you need to update the env_wrapper.h as shown below: |
|
I can confirm that I was using a slightly older installer of uVision, which still installed uVision 5.39.0.0, but defaulted to CMSIS version 5.9.0 rather than 6.1.0, which was causing the discrepancy. Will update the pack to work with 6.1.0 Edit: It looks like I was using the current version of the installer, it just installs 5.9.0 by default rather than 6.1.0 on my system, so I'm not sure why @bgolab gets 6.1.0 by default when I get 5.9.0? |
Yes, in my case I had to install CMSIS 5.9.0 manually. The 6.1.0 was out of the box. |
@bgolab can you check whether the cmsis-pack I attached could solve the problem or not? |
I simply followed the STM32 way of setting the Target tab (and enabling this memory map on the linker tab) when you want to use the SRAM for keeping the code. Ok. Will follow your advise in case of using it. |
STM32 still follows the old way, i.e. using assembly startup code. In the so-called latest (and recommended way) in cmsis standard, silicon vendors should use C startup code. The so-called "latest" way, actually can be dated back to 2016. This is the reason and background. |
I don't have any problem with following the "new" way. Just got used to the really old way. |
For many people, knowing the reason and background helps with inner peace. : p |
Yes, sure. I really appreciate your help. I wonder what other non-old way approaches I will come across when trying the RP2040 with the Keil uVision (my favorite tool). |
How do you know? Did you check the map file? There are always some code in the flash (the load region) but the code is actually running in SRAM (execution region). During the startup, the code in the load region will be copied to the execution region (in SRAM). So except the startup_RP2040.o and Stage2 BOOT, all your code is running in SRAM (although there are stored in Flash). With this configuration, the application can survive to the next power-up. I hope this helps. If you truly want everything in SRAM and don't want the application survive to the next power-up, you can try this: https://github.com/GorgonMeducer/Pico_Template/blob/main/project/mdk/RP2040_debug_in_sram.sct |
I have a script which checks the uf2 file to retrieve code memory locations. Also it looks like that the map file confirms it.If it comes to the RPI SDK the "no_flash" set in the CMAKE config means that no flash is involved when loading the code to the execution area (the code is loaded directly to the SRAM area without any debugger help like we do in the case of STM32). Yes, I see the difference between flash loaded code from code directly loaded to the SRAM case. |
When selected the RP2040_debug_in_sram.sct scatter file I got the following errors. After Build - User command #2: C:/Users/abg015/AppData/Local/Arm/Packs/RaspberryPi/RP2xxx_DFP/0.9.4/tools\elf2uf2.exe "C:\Users\abg015\Documents\Keil\test1-sram\Objects\rp2040_example.axf" ".\rp2040_example.uf2" |
@bgolab this RP2040_debug_in_sram.sct is used for debug, that means we don't care about the elf2uf2.exe report, i.e. we don't need uf2. The MDK will load the image (*.axf) to the RP2040 directly |
The key is, what is the ultimate goal? running code in SRAM or load code to sram without involving flash.
As you can see, I really care, so that's why I am trying my best to understand the reason behind a request. |
One may ask why the RPI built-in this option to the bootloader - I mean ability to load & execute the code in to the SRAM area. I like using this option personally during the development phase, for small programs since I ran into some flash issues years ago (this was TI MCU with pretty limited number of writes). I do not want to start the discussion about flash longevity nowdays, etc. It was not a request - I asked about this out of curiosity to see if there is basic feature pairing between the RPI SDK and Keil uVision. Again, please do not waste your time on this niche feature. |
If you're looking for a simple example, see https://github.com/raspberrypi/pico-examples/tree/master/flash/nuke |
@bgolab @lurch I understand now. I have applied a fix to the scatter script Would you mind trying the Pico-Template? I have updated it to use RP2xxx_DFP. Please switch to the AC6-DebugInSRAM |
Linker tab: I see that you set R/O base to 0x0000000 whereas I had 0x10000000 when failed. PS. I believe I tested your templates in the past. This time I would like to use the official release to compare. |
Once we use linker script, this kind of option won't affect the final result.
Can you pass me the map file?
As I mentioned above, I have updated the Pico-Template to use official RP2xxx_DFP. The reason I asked you to try it is because this could become the common example project for us to understand the reason behind the issue you encountered. |
rp2040_example.map.txt |
@bgolab Can you attach the linker script also? The reason I ask this is because, the map file looks strange.
This is the one on myside:
You might notice that the key difference is the Reset_Handler is placed at the start of the 0x20000000
This is the key difference. In your map file, I found this:
This is the location of Reset_Handler in my map file:
Based on this, I really want to check the linker script you actually use. |
Current settings of the Linker tab and latest / freshest file (BTW. I have not touched the content of the linker file): [RP2040_debug_in_sra |
@bgolab You are not using the latest RP2040_debug_in_sram.sct Please use the latest one. https://github.com/GorgonMeducer/Pico_Template/blob/main/project/mdk/RP2040_debug_in_sram.sct It is different from the one you currently using. Thank you. This is the one you using: ![]() This is the latest one: |
I lost control of this. This time should be ok: Program Size: Code=18804 RO-data=2152 RW-data=260 ZI-data=41148 |
@bgolab I managed to replicate the same issue on myside, please add Without this option:
With this option:
|
Yes, the '--entry=Reset_Handler' magic setting helped. It looks like not everything is controlled by the sct. The old-way of controlling linker settings in such simple scenario like this (just moving the code region to SRAM area) wasn't so bad;) Thank you. |
UF2 verified by my script that the code is located in SRAM: |
@bgolab You mixed different things up.
The Old way won't help. This is because RP2040 BOOTROM only wants the Reset_Handler to be located at a specific location. This is different from STM32, which always read Reset_handler address from the vector table (RESET section in our case). The so called old way or new way only affects how the STACK and HEAP are configured. |
Yes, I see. Got used to STM32;) |
Current solution, i.e. using |
It looks like the RP2 is not officially supported yet: |
@bgolab It is the legacy list... |
Hi,
Since we have lots of libraries and code on ARM Keil tools, it would be very helpful if you could add support for it.
The text was updated successfully, but these errors were encountered: