Port Modbus Slave Stack On ATSAME54 embedded by neudeep - July 30, 20190 We are referring modbus server stack implementation for SAM3X and We want to port it on SAME54P20A. First we have downloaded the example project for SAME54P20A which is using Usart_Asynchrnous module from Atmel START. Then create new top level directory for project files. Following files needs modification while porting, they are present in sub directory named 'port' which will contain all port specific files, portserial.cporttimer.cportevent.cportother.cport.h Atmel start project is having makefile in sub-directory 'gcc'. Add these port specific files paths in makefile. Then add modbus stack folder to top level directory which is having all the modbus specific functions. For compilation we hav to add these all file paths in makefile which is in gcc directory. We have to first
How To Use Two Timers In Same Project embedded by blog_1buq8n - July 29, 2019August 22, 20210 If you are using SAM series controller you probably have came across this question, How do i implement two timer which generate two interrupt at different time in same project? or How we can use two timer in same project in SAME54 controller? Well SAM series controller are ARM-based MCUs and MPUs from ATMEL now Microchip. We are using ATSAME54P20A ie SAME54 explained pro board to evaluate the functionality of it. So created new project using start.atmel.com with TC0 and TC1 along with WDT and interrputs. The project tree looks as below, This project works well and TC0 timer interrupt is working but TC1 timer interrupt is not working. Following is code for initialization and using
How To Write RTOS Safe ISR For ATSAME embedded by blog_1buq8n - July 26, 2019August 22, 20210 In our application it is required to use FreeRTOS API functions from an interrupt service routine(ISR). Good thing about FreeRTOS is it has provided interrupt safe API, meaning one can use FreeRTOS API functions from ISR, as they have provided two versions of some API. Functions intended for use from ISRs have “FromISR” appended to their name eg. xQueueSendFromISR How to set correct priority levels if I want to call an ISR-safe function from interrupt? Because the maximum level of configKERNEL_INTERRUPT_PRIORITY is 1 and the minimum preemption Priority level of any interrupt source e.g. and edge interrupt is 15. That means it is above the max. level of configKERNEL_INTERRUPT_PRIORITY. In our application we were using xQueueSendFromISR() from IRQ10 ie 'EIC_10_IRQn', to
How To Use WDT On Free RTOS Running ATSAMEx embedded by blog_1buq8n - July 24, 20190 After doing some google and spending almost 4 hours on choosing right place to start WDT, we have decided to share our learning here. Well we are using ATSAME54P19/20 controller from Microchip formally Atmel. Watchdog timer - WDT works well without Free RTOS (10.0) but when WDT is enabled along with RTOS it simply does not work well. In big while(1) embedded applications with no RTOS you can always initialize WDT after peripheral initialization and feed/touch WDT in while/main loop. In case of RTOS there are multiple tasks/threads and to be specific in case for Free RTOS when you try to enable WDT right before vTaskStartScheduler(); call it simply does not work. Tried with following solutions - like configure
Ceedling Unit Testing With ATSAME54 Testing by neudeep - May 17, 2019May 20, 20190 This post is continuation of previous post on how to mock local variable in ceedling, please check out previous post before continuing with this article. Another issue is having to add all the microchip files. When CMock gets a hold of the header file it looks at all the functions defined there and generates several mock functions for each. In one program, we are dealing with 4 pins of microcontroller. The pin numbers and its functions are defined in file 'atmel_start_pins.h' which is included in our project. But inside this file there are definitions for all the pins and 'hal.gpio.h' file is included. Inside 'hal.gpio.h' file, another files are included. The original atmel_start_pins.h file is like below, We need
How To Mock Local Variable In Ceedling embedded by neudeep - May 17, 2019August 30, 20210 In embedded system product development there are quite number of tools and framework for unit testing the C code. In this blog post I will explain about how to mock local variable in ceedling for unit testing. Ceedling is one of the widely used open source framework for your test driven product development (TDD) in embedded systems. What is Ceedling 'Ceedling' is open source framework used in unit testing, in our project which involves embedded system development we are using 'ceedling' framework. Ceedling works together with Unity and CMock. Both are are open source tools for testing C code. Ceedling has feature of automatic generation of mock. Read more about ceedling features in our previous blog post. Unit Testing Tools Unit
Install Redmine On Ubuntu With Solved Gem BuildError LinuxAdmin by blog_1buq8n - April 29, 2019December 11, 20191 This post describes in detail on howto install Redmine latest version on Ubuntu 18.04 -x86_64 GNU/Linux system. Redmine is one of the most widely used open source software tool and platform for project management, issue tracking and project execution. With lot of freely available plugins one can also use Redmine as CMS, Invoicing, finance, HR and most of the activities that are involved in small scale software company. If you are startup company and looking for all in one tool Redmine is answer. This guide is little bit lengthy as there are few workaround during installation, so grab your coffee before you start. If your system does not have apache server installed then follow step 1, else skip to step
How To Automate Code Review With Reviewboard LinuxAdmin by blog_1buq8n - April 26, 2019September 5, 20210 This post is simple how-to guide on Automate Code Review And Code Quality With Reviewboard. These days for software code review, code quality and code security lot of online tools are available like BitBucket, Amazon CodeGuru, GitHub, Gitlab but reviewboard is winner. Will list out GitHub and Gitlab major features and move on to Reviewboard. In embedded product development it is important to setup right tools and right process, Earlier, we have seen setting up ceedling test driven product development (TDD) process for embedded systems product development. GitHub is one of the popular source code management tool. It is web based version control system with easy UI. One of the widely used tool in collaborative software development. With Pull Request or
USB Host API’s in the android.hardware.usb Android by Manasi Dharne - April 26, 2019April 30, 20190 When Android-powered device is in USB host mode, it acts as the USB host, powers the bus, and enumerates connected USB devices. Manifest Requirements Following things need to be add in Manifest file: <uses-feature> element that declares that your application uses the android.hardware.usb.host feature.Set the minimum SDK of the application to API Level 12 or higher. add <intent-filter>(USB_DEVICE_ATTACHED) and <meta-data> .<meta-data> points to an xml file which contains vendor-id,produt-id,class,subclass,protocol.to give information <usb-device> tag can be used. <manifest ...> <uses-feature android:name="android.hardware.usb.host" /> <uses-sdk android:minSdkVersion="12" /> ... <application> <activity ...> ...
Redmine Could Not Spawn Process Error Solved LinuxAdmin by blog_1buq8n - April 19, 2019December 11, 20191 Redmine error solved for passenger.