We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I'm using the gcc toolset, and had hoped to be able use this functionality, however all of the documentation seems to state superseded or suspended.
ARM Information Center
I'm trying to target an STM32F4 processor.
Any pointers to how to do this?
Hello,
The documentation is outdated because it is the documentation of an old tool software revision. It doesn't mean that software interrupts are not supported anymore.
I'm moving your question to Software Development Tools and inviting you to join that group as our experts would be lurking there.
Users of the community are individuals, there is no ARM account for instance. We can help change your username to a more user-friendly/personal one. Send me a private message if you want to do that. (User Account, User Name, Display Name, SSO... - FAQ and Special User Accounts, Admins - FAQs)
Companies working on ARM technology can get a space in Find a Partner to present their products and services. Also let us know if you represent your company and wish to do this!
Hi wiesersoftwareltd,
Using the GCC toolset it is probably not a great idea to be looking at the documentation for the ARM Compiler. They are not the same thing. However they do the same thing in this case, somewhat, in that there are intrinsics available to map what looks like a function call in C to a specific code sequence in the generated code. For the ARM Compiler 5, you can see __svc, __svc_indirect and __svc_indirect_r7 which generate different forms of prologue and register movements, and eventually generate an SVC with the immediate value you specify. For reference, this is how the newer (non-superceded) versions of the ARM Compiler do it:
ARM Compiler armcc User Guide : 10.16 __svc
ARM Compiler toolchain Developing Software for ARM Processors: Supervisor calls
For GCC, I believe there is no instrinsic or compiler builtin for SVC (and I couldn't find one today), you would have to use inline assembler. Also note that GCC inline assembler is not the same as ARM inline assembler! But the process is much the same.
Ta,
Matt