My graduation project's part is DIO driver for Tiva C MCU with AUTOSAR, I have no idea where and how to start. Are there any useful sources/materials that could help me implement such a thing given that I know nothing about the AUTOSAR methodology or ARM (Tiva C) configuration?
Thanks in advance.
Well, there is the autosar.org, where you'll find e.g. the AUTOSAR_SWS_DIO.pdf and AUTOSAR_SWS_Port.pdf, which define the APIs you need to implement and also in chapter 10 defines the parameters for configuration. And you need something to generate the configuration.
Then there is the Tiva MCU reference manual, which you'll need to understand, how to implement within the Dio functions to set/get the status of a DioChannel or a DioChannelGroup.
Related
The existing project is running well on STM32F0. The code should be converted to Atmel SAMD21.
The code is written in Visual Studio and using the IntelliSense configuration (ARM Paths). Both projects should use the I2C interface. The package which is used is ChibiOS for STM32.
Because I didn't write the code from scratch, Which part should I change in the code or read carefully? In other words, what is common and different in programming 2 different arms?
Do I need to do my own bootstrap (I mean the initialization part) and linker script? What else is needed?
Also, is there any configuration file for arm definition that I should change?
As I should change chibiOS and add the libraries for Atmel, Which library or package is better to use for Atmel SAMD?
Is there any idea or example that is helpful to compare between these
2 arms?
Much appreciated for any helpful suggestion, in advance.
I want to use FreeRTOS for PIC32MX120F064H using MPLABX IDE. I tried a lot but couldn't find any simple LED blinking project for this specific microcontroller that I am using. I even tried demo projects given by FreeRTOS but they are for specific microcontrollers and doesn't work with my microcontroller. I only need the project structure (meaning what/how files to include) and a simple LED blinking demo. I know from the FreeRTOS site that we have to include task.c, queue.c and list.c as basic files but I tried everything but no luck. Please somebody help me with this.
The FreeRTOS.org site has a page describing how to convert a demo from one device in an MCU family to another device in the same family. Alternatively have the MPLAB Harmony tool create a FreeRTOS project for your chip.
I'm using PlatformIO as an IDE for programming AVR MCUs. I'm beginning AVR programming (I have a background in C/C++ and programming on OS's, not embedded, although I have done some Arduino stuff in the past) and using PlatformIO gives me code completion for the registers/pins, which is why I use it.
It seems I can't switch framework from Arduino to avr-gcc in PlatformIO without losing code-completing.
I am wondering if there's any drawbacks in keeping Arduino as the
framework?
I know Arduino uses avr-gcc in the back, but I read that it still does a bit of setup without the users knowing it (such as Timer0 setting for delays, which I need since I'm using it as a clock source for USI on my ATTiny85).
Otherwise, is there anyway in PlatformIO to keep code completion and
use avr-gcc instead of Arduino?
Thanks!
EDIT: I'm on either OSX or linux (ubuntu).
As pointed out by ivankravets on the PlatformIO community platform (see: https://community.platformio.org/t/avr-programming-without-arduino-framework/525/4), it is as simple as removing the line framework = arduino from the platformio.ini file to get rid of the Arduino framework and work in bare C for avr-gcc.
I have never used PlatformIO, and my answer is only based on my (extended) knowledge of AVR development and the Arduino mess…err…framework.
The Arduino framework is using AVR-libc (the standard low level framework that gives you all the tools you need to program on AVR), and adds a layer of abstraction so you're not directly handling registers, but use a more easily understandable interface.
So when you write on a pin, instead of looking at the AVR's IC leg number, looking for the matching PORT address to configure it and mutate it, you're using digitalWrite() on the board's pin number. So, whatever the IC is, the pin will stay the same with consistent capabilities.
The pin definition is done using a header file that's given to the compiler depending on your target setting in your IDE (so whether you use an Arduino Mega or a Leonardo the matching between AVR port/pin and board pinout will change radically).
Given your description of PlatformIO, it's using that information to give you appropriate pinout completion based on the board configuration. It's also certainly taking advantage of the object oriented approach of the Arduino framework, so that you can easily have method completion when using singletons (like when you use Serial).
Using raw AVR-libc, on the other hand, it's harder to get any meaningful completion, because most of the operations are being done on registers which are being declared through preprocessors aliases, and the whole code is pure C, so code completion is not really helpful (you cannot list all the methods that applies to a given object… like with the Serial example).
Then, Arduino offers a nice high level approach to prototyping embedded code, that you can then curate when you need to optimise in time and/or space. And some projects (like the Marlin firmware for repraps) use some sort of hybrid approach, reimplementing many parts of the Arduino interface in a more optimised way (like digitalWrite or the Serial object).
In the end, my advice to you would be to drop platform.io or the arduino IDE, and switch to eclipse if you're really into IDE GUIs, or better, use your preferred powerful editor (like vim/nvim, emacs, atom, sublime…) to have it handle AVR code like any other C code.
If you work on an Arduino project including avr-gcc internals using VisualMicro plugin and VisualStudio (Community Edititon) all the code completion / syntax highlighting / goto declaration etc. works for anything in your project and all libraries.
Is this what you're looking for?
Of course, VisualMicro is annoying if you use them "for free"
I am working on a project based on J1939 Interface. I am using J1939 C Library for PIC 18 devices (AN930), I am wondering how can I modify this library to work with PIC32MX795F512L device?
I am not the expert level programmer and started working on PIC32 couple of month ago.
Please guide me.
Thank you
If the library was developed the right way, then you only need to find out the clock that controls the timing for the messages; and route it to the right configuration; also you need to identify the buffer where you are going to be receiving the messages, and route it to the library.
That library is outdated and devs stopped updating it. It is designed for C18 compilers. If you want to use that library in XC18 or any other compiler you have to make some major changes in J1939.c file. I do not recommend to spend your time with it, you can implement new one by refering datasheet of your microcontroller, it would be so much easier. Good Luck!
The question below was related to the 8051 family as it has only the serial ports. Now when i found out that the ARM processors have inbuilt ethernet facility i decided to mov on to the ARM's. So which would be the Most easiest one to start of and as iam aware of keil environment i would like to work on anARM which supports keil .
Thnxx,
Cheers.
The TI (formerly Luminary Micro) parts are easy to use. The eval kits are cheap and there is a lot of documentation on the Luminary Micro web site, including sample code. I've been using the LM3S6965 EVK for an ethernet project. The eval kits can be ordered with Keil, IAR, Codesourcery or Code Red compilers.
Check out the AT91SAM7X.
AT91 SAM series from Atmel is really popular between hobbyists and amateurs, you will find a lot of open source examples and excessive topics regarding this CPU's. And yes, they are widely supported in Linux community.
Check this out: http://www.at91.com