Comments (7)
Hi @ProyMonit ,
It looks like Keil uses __asm()
syntax. See: http://www.keil.com/support/man/docs/armcc/armcc_chr1359124246903.htm
Can you try altering this inline assembly to use __asm()
or __asm volatile()
and see if it resolves the compiler error?
Thanks,
David Garske, wolfSSL
from wolfboot.
Thanks for your fast reply. I will try your suggestion and let you know as soon as I can. Best regards.
from wolfboot.
Hello @ProyMonit - could you confirm that switching to __asm volatile() instruction fixes the error with keil? If this is the case we could prepare a specific fix for that compiler.
Thanks in advance,
D.
from wolfboot.
Hello, sorry the delayed reply. I tried the suggested fix but it didn't work. Instead I searched a bit more and finally used this syntax:
__asm volatile
(
"msr msp, app_end_stack"
);
This last code segment solved the compilation issue. Thanks a lot for the support. Best regards. Yosmany.
from wolfboot.
@ProyMonit Thanks! I will provide a fix ASAP.
/d
from wolfboot.
Hello @ProyMonit - I'm trying to add support for Keil. What I've done so far is in the following branch:
https://github.com/wolfSSL/wolfBoot/tree/keil
The assembly error seems to be gone when I define asm
as __asm
when this compiler is detected. The version I'm using is MDK-Lite 5.31.0.0
However, there are a few things about the Keil microVision compiler that are not clear to me, e.g. how to place a custom interrupt vector and initialize all the memory sections at startup like we do with other compilers (gcc, IAR, etc.).
For now the branch is linking a wolfBoot as it were an high-level embedded application using the CMSIS startup code and the built-in reset service routine. The basic case may be working, but many features and platforms won't be properly supported through Keil, and the security of the bootloader may be compromised if the entire boot process is not under direct control of the bootloader code.
The proposed workaround to make wolfBoot work with Keil at the moment consists in commenting out the interrupt vector table in boot_arm.c
and the isr_reset function which is normally used as entry point, but I would prefer to define the memory regions at link time and use the interrupt vector configuration and functions defined in wolfBoot. Please see the aforementioned branch for details.
Do you know instead a proper way to implement custom start-up using this tool? Are you using a custom "scatter file" (.sct) for wolfBoot in order to define the required symbols for start/end data/bss and the END_STACK pointer that is placed right before the IV?
Could you please share the project files and the scatter file that you are currently using to compile wolfBoot in Keil, so that we can include and maintain the support in the future versions?
Thanks!
from wolfboot.
Closing - missing information about the report. @ProyMonit feel free to reopen if you are able to share project/scatter files for Keil.
from wolfboot.
Related Issues (20)
- Core lock up on STM32L0 HOT 4
- STM32U5 USART drivers support HOT 5
- External flash encrypted with Chacha broken HOT 19
- IAR linking errors HOT 5
- Running WolfBoot on ST NUCLEO-F401RE HOT 12
- `master` does not build with `wolfcrypt` 5.4.0 HOT 2
- Uefi shell wolfssl efi HOT 1
- Compilation for cortex-M0 HOT 10
- Reset keystore.der HOT 4
- Values of `version_field` and `type_field` are ignored by compiler optimization HOT 3
- Prevent ext_flash_decrypt_read from writing more data than requested HOT 1
- Support for keeping application partition encrypted on external flash HOT 1
- Content of keystore.der generated by kengen is not correct HOT 2
- Possible problem with power fail HOT 5
- KeyGenTool Have Some Problem HOT 3
- Bootloader firmware not built without test-apps / cannot reconfigure cmake build HOT 4
- i.MX RT10xx operator '*' has no right operand HOT 3
- RZN2L - Separating App and Loader with FreeRTOS HOT 4
- Log to flash support HOT 2
- Boot flags update fail on H7 (if last sector has some data) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wolfboot.