I'm working on an embedded C project, on Keil IDE; using stm32F103RB microcontroller
I need to use floating point values %f, but it doesn't work, my serial monitor doesn't print any float, but works fine with integers.
Is there any methode to activate FPU ARM M3 microcontrollers with Keil ?
Thank you!
Related
I've decided to make the step up from using PIC to ARM Cortex-M but having trouble finding an equivalent to the PICKIT to program it.
After googling the net I have been given loads of options but have no idea what to buy.
Can anyone out there give me any advise on what to buy?
I'm so used to buying a PIC16F microcontroller, using MPLAB and the PICKIT 3 I'm unsure about what I need.
I like the ST-Nucleo and the slightly more complex ST Discovery. They are inexpensive (start at around $13), versions for just about all STM32 series, built-in ST-LINK debug pod, and have Arduino style header connectors.
You can program it using free or commercial IDE/compilers, mBed compilers, and even the Arduino IDE. You can start with using the free CubeMX graphical generator to generate initialization code.
So literally all you have to spend minimally is just a $13 kit and a USB cable to get started.
I am having problems with the programming of a custom pcb which is using the 32-bit atsam4sd32c ARM Cortex M4. I am unable to program the microcontroller trough the JTAG/SWD interface using the ATMEL-ICE debugger. However I am able to get the device signature identifier using the atmel studio 7.0 command promt. Doing manual chip erases and resets is also possible.
When I try to program the board via the atmel studio 7.0 software the upload hangs at 14%.
We have tried a lot but not progress is being made.
Can anyone help?
Thank you all for your responses.
I was aware of the fact that this question was a little unfit for this forum.
But I hoped there might be people here who had experience with the atmel ARM series microcontrollers.
I did contact Atmel support and aventually that helped out.
The problem was in de hardware design of the JTAG lines. I was unaware of the need for pull-up resistors on all JTAG lines (TMS, TDI, TDO, NRST and TCK).
after we applied the resistors programming worked fine.
greetings,
Maarten Roozendaal
I just got my all new Raspberry Pi 3 board. I was wondering which tool-chain to use for my 64-bit pi (BCM2837). In the official github page I could find tool-chain for previous model only. Please Help
In documentation at https://www.raspberrypi.org/documentation/linux/kernel/building.md you can use toolchain from https://github.com/raspberrypi/tools which works with your Raspberry Pi 3 board. You don't need any special toolchains because the kernel is still 32bit and OS (like Raspbian) is at this time only 32 bit. There won't be any other special toolchain for RPi3.
How can I compile a different micro-controller on different micro-controller family IDE/compiler.
For example, I have 8051 keil uVision IDE. I need to compile the code for PIC or AVR controller.
Is it possible, by changing any internal settings in the IDE?
Or by adding Controller specific header files etc.?
The Actual answer i required here is,
what the IDE/compiler will add to the code after selecting a particular "Microcontroller" in device list of keil or AVR Studio or PIC etc..?
what the IDE/compiler will add to the code after selecting a particular "Microcontroller" in device list of keil or AVR Studio or PIC etc..?
You are getting it wrong. Let's take a different approach:
Think of a C program as a specification for your processor i.e description in human readable language how it should perform sequentially.
Now each processor has different Hardware architecture and different set of instructions to control it.
Normally ,a C compiler will convert the C Code into Assembly (.asm/.a) instructions specified for that particular processor.
So a C Compiler for different architectures is along-together a different compiler.
In Eclipse or IAR tool-chain you use a different compilers for different processors.
No. PIC and AVR are both separate architectures from the 8051, and as such require entirely different compilers. You cannot convert a compiler for one into another by changing settings or adding header files; they are simply too different.
Keil does not provide compilers for the AVR or PIC architectures; you will need to install another development environment to work with those parts.
There are 2 types of compilers
Native
Cross compiler
Native On a PC when you write a program in high level language and compiles using let us say "Visual studio" it generates code for microprocessor on your computer. ( Most probably Intel ).
Compiler convert the high level language constructs into machine language of microprocessor.
Cross compiler
A cross compiler is compiler which converts the C code into other microprocessor /micro-controller machine language.
Now various tool like Keil uVision, IAR Embedded Workbench , Code Composer Studio which runs on PC but create machine code for micro-controller selected. Every IDE will provide list of processor families and part number which it supports and it compiles C code accordingly.
These IDE provides various features to configure your program output as per the hardware. Start up and INIT.A51 file you have mentioned will do necessary hardware initialization before main() function will start executing your program.
So when you select particular part number from device list compiler checks if compiled output can be run on part mentioned. For example : If your program requires X amount of RAM and controller has less than X amount of memory it will throw compiler error.
Please list some software/s and links which can help me build firmware for Atmel 89C2051 micro-controller. Thanks.
The Atmel AT89C2051 is a 20 pin version of the popular 8051 microcontroller. The program memory (Flash) is limited to 2K and all the instructions related to jumping or branching should be restricted such that the destination address falls within the physical program memory space of the device. The Atmel AT89C2051 also has all of the normal 128 bytes of RAM as well as the built-in UART.
The datasheet (PDF link) is often a good place to start when developing firmware for a microcontroller.
Since the Atmel AT89C2051 is fully compatible with the MCS-51 architecture, and can be programmed using the MCS-51 instruction set, http://www.8052.com should be a good resource.
http://www.google.com/search?q=89C2051+site:www.8052.com
The open source Small Device C Compiler (SDCC) toolchain can be used to produce the necessary firmware files for programming the Atmel chip.
The Atmel C51ASM assembler is a two-pass macro assembler for the Atmel AT89 Family of 8051 microcontrollers and, according to the documentation, supports the AT89C2051.
The Stack Overflow questions tagged 8051 may also be of use.
I used Keil µVision for developing firmware for microcontrollers with MCS51 instruction set. It was convenient, but it was not free and trial version had some limitations on size of firmware.
You need 2 or 3 things:
Develop the firmware: Depending on what programming language you are good at, you may use assembly language [a51 & asem51 are good assemblers], c cross-compiler [keil c51 free trial version should be sufficient] or even basic [you can find a basic compiler for 8051 on the net].
The firmware should be in Intel hex format; if your assembler/compiler output is binary code, you need a bin2hex utility to convert the binary code to hex format. You can find freeware bin2hex utilities on the web.
A programmer [this is hardware] for loading the firmware into the microcontroller's program memory.