Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
b0acba1
Implementing the callback functions for GPIO registers in GPIO.h and …
asifsardar26 Oct 6, 2014
5e7d74e
Implementing callback functions for all gpio registers
asifsardar26 Oct 7, 2014
fff15b7
Deleting commented code
asifsardar26 Oct 7, 2014
4e51d71
Implementing table based indexing for the GPIO ports for the boards
asifsardar26 Oct 9, 2014
f3e8bc1
Commiting changes to emulator regarding the peripheral registers. Eac…
asifsardar26 Oct 27, 2014
b602456
This commit is part of commit f3e8bc1... I forgot to staged them for …
asifsardar26 Oct 27, 2014
c80fde1
Update pythonCallback.c
asifsardar26 Feb 18, 2015
0972d5c
Update pythonCallback.c
asifsardar26 Feb 18, 2015
b6ef3fe
Update emulator.mk
asifsardar26 Feb 18, 2015
18ca755
Dockerfile for creating automated build image
asifsardar26 Feb 19, 2015
153cf74
Changing the URL for test repository
asifsardar26 Feb 19, 2015
69afda3
Changing the URL for test repository
asifsardar26 Feb 19, 2015
b65f780
Create Dockerfile
asifsardar26 Feb 19, 2015
ddc0bb5
Create Dockerfile
asifsardar26 Feb 19, 2015
89beb99
gcc-arm-none-eabi version 4.9
asifsardar26 Feb 20, 2015
5ce4fd8
New docker file with RIOT
asifsardar26 Feb 20, 2015
0159040
Update Dockerfile
asifsardar26 Feb 20, 2015
624ecf5
Update Dockerfile
asifsardar26 Feb 20, 2015
bc5bdfa
Update Dockerfile
asifsardar26 Feb 20, 2015
cc2ca81
Update Dockerfile
asifsardar26 Feb 20, 2015
8f2a312
Update Dockerfile
asifsardar26 Feb 21, 2015
b412bdf
Temporary WIP version of CoAP library.
pekkanikander Oct 22, 2014
75591cb
Fix: encX24j600 register name
supramaterial Oct 29, 2014
bee81f6
Add: library path for linux compilation
supramaterial Oct 29, 2014
4370e6a
Temporal Fix: set correct spi ss pin
supramaterial Oct 29, 2014
833d628
Temporal Add: Serial print hex function
supramaterial Oct 29, 2014
f29e0da
Fix ENCX24J600 packet sending
pekkanikander Oct 30, 2014
71ab04e
Fix a packet reading bug in ENCX24J600 driver
pekkanikander Oct 30, 2014
7aabca6
Add memory.c to this branch
pekkanikander Oct 30, 2014
95b63bc
Add debugging output to ARP and Ethernet
pekkanikander Oct 30, 2014
e9288b0
Add __udp_sockets and __coap_urls to STM32F334 linker script
pekkanikander Oct 30, 2014
40a3fd0
Cosmetic fixes to comments
pekkanikander Oct 30, 2014
e9520f6
Temporary fix to compile CoAP with ENCX28J600
pekkanikander Oct 30, 2014
cd7817f
Add test_CoAP_no_threads test case
pekkanikander Oct 30, 2014
c7e30c4
Fix ENCX24J600 packet receiving
supramaterial Nov 15, 2014
75c5f5c
Fix ENCX24J600 eth_output
supramaterial Nov 15, 2014
393d102
Add support for reading MAC address
supramaterial Nov 16, 2014
3368b2d
Update test_CoAP_no_threads to handle MAC address
supramaterial Nov 16, 2014
4e06c7c
Temporal Fix: Only compile encX24j600 library
supramaterial Nov 16, 2014
49ca376
Fix buffer for test_ENCX24J600_receive test
supramaterial Nov 16, 2014
e55f93c
Add detailed comments for ENCX24J600 receive buffer wrap around
supramaterial Nov 16, 2014
8ccb5e4
Add support for ENCX24J600 interrupt pin
supramaterial Nov 16, 2014
a957bdf
Add interrupt handling API for ENCX24J600
supramaterial Nov 16, 2014
8fc3477
Add test_CoAP_interrupt test
supramaterial Nov 16, 2014
c7c6c88
Fix return value from memcmp
supramaterial Nov 16, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "robot_tests"]
path = robot_tests
url = git@github.com:Ell-i/ELL-i-PyBot-Tests.git
url = https://github.com/asifsardar26/ELL-i-PyBot-Tests
45 changes: 45 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
FROM 32bit/ubuntu:14.04

MAINTAINER Asif Sardar <engr.asif.sardar@gmail.com>

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y \
make \
gcc \
g++ \
git \
python2.7 \
python2.7-dev \
python-setuptools \
wget \
zip \
unzip \
bridge-utils \
valgrind \
nano

ADD https://launchpad.net/gcc-arm-embedded/4.9/4.9-2014-q4-major/+download/gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.bz2 /home/Downloads/
WORKDIR /home/Downloads/
RUN tar xvjf gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.bz2

ENV PATH /home/Downloads/gcc-arm-none-eabi-4_9-2014q4/bin:$PATH

RUN easy_install -Z robotframework
RUN easy_install -Z docutils

RUN git clone https://github.com/asifsardar26/Runtime.git /home/Runtime
RUN git --git-dir /home/Runtime/.git --work-tree /home/Runtime checkout feature-encX24J600-wip

RUN git clone https://github.com/asifsardar26/ELL-i-PyBot-Tests /home/Runtime/robot_tests/

RUN git clone git://github.com/RIOT-OS/RIOT /home/RIOT

#WORKDIR /home/Runtime/stm32/tests/robot_library/
#RUN make PLATFORM=emulator

VOLUME ["/home"]

WORKDIR /home

CMD ["/bin/bash"]
31 changes: 31 additions & 0 deletions Dockerfile-32-bit-Robotframework/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM 32bit/ubuntu:14.04

MAINTAINER Asif Sardar <engr.asif.sardar@gmail.com>

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y \
make \
gcc \
g++ \
git \
python2.7 \
python2.7-dev \
python-setuptools

RUN easy_install -Z robotframework
RUN easy_install -Z docutils

RUN git clone https://github.com/asifsardar26/Runtime.git /home/Runtime
RUN git --git-dir /home/Runtime/.git --work-tree /home/Runtime checkout feature-encX24J600-wip

RUN git clone https://github.com/asifsardar26/ELL-i-PyBot-Tests /home/Runtime/robot_tests/

WORKDIR /home/Runtime/stm32/tests/robot_library/
RUN make PLATFORM=emulator

VOLUME ["/home"]

WORKDIR /home/Runtime/robot_tests

CMD ["/bin/bash"]
74 changes: 74 additions & 0 deletions Dockerfile-64-bit-Robotframework/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
FROM ubuntu:14.04

MAINTAINER Asif Sardar <engr.asif.sardar@gmail.com>

RUN dpkg --add-architecture i386

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y \
build-essential \
gcc-multilib \
gcc-4.8-multilib \
g++-multilib \
g++-4.8-multilib \
#ia32-libs \
#ia32-libs-multiarch \
libc6-dev \
libgmp-dev \
libmpfr-dev \
libmpc-dev \

# Dependencies for python source code compilation
zlib1g-dev \
lib32z1-dev \
libreadline-dev \
libreadline6-dev \
lib32readline-dev \
lib32readline6-dev \
libgdm-dev \
libsqlite3-dev \
libgdbm-dev \
libdbm-ocaml-dev \
libdb4o-cil-dev \
libx11-dev \
lib32bz2-dev \
libbz2-dev \
libncurses5-dev \
lib32ncurses5-dev \
tk-dev \
git

ADD https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz /home/Downloads/
WORKDIR /home/Downloads/
RUN tar zxvf Python-2.7.8.tgz
WORKDIR /home/Downloads/Python-2.7.8/
RUN BASECFLAGS=-m32 LDFLAGS=-m32 CFLAGS=-m32 ./configure --prefix=/opt/pym32
RUN make
RUN make install

ADD https://pypi.python.org/packages/source/r/robotframework/robotframework-2.8.7.tar.gz#md5=42a38054fb24787e6d767e0a96315627 /home/Downloads/
WORKDIR /home/Downloads/
RUN tar zxvf robotframework-2.8.7.tar.gz
WORKDIR /home/Downloads/robotframework-2.8.7
RUN /opt/pym32/bin/python setup.py install

ADD https://pypi.python.org/packages/source/d/docutils/docutils-0.12.tar.gz#md5=4622263b62c5c771c03502afa3157768 /home/Downloads/
WORKDIR /home/Downloads/
RUN tar zxvf docutils-0.12.tar.gz
WORKDIR /home/Downloads/docutils-0.12
RUN /opt/pym32/bin/python setup.py install

RUN git clone https://github.com/asifsardar26/Runtime.git /home/Runtime
RUN git --git-dir /home/Runtime/.git --work-tree /home/Runtime checkout feature-encX24J600-wip

RUN git clone https://github.com/asifsardar26/ELL-i-PyBot-Tests /home/Runtime/robot_tests/

WORKDIR /home/Runtime/stm32/tests/robot_library/
RUN make PLATFORM=emulator

VOLUME ["/home"]

WORKDIR /home/Runtime/robot_tests

CMD ["/bin/bash"]
13 changes: 13 additions & 0 deletions stm32/cores/arduelli/Arduino_Serial.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ class SerialClass : public Stream {
constexpr SerialClass(const USART &);
void begin(uint32_t) const;
void write(uint8_t) const;
void writeHex(uint32_t) const;
private:
const uint8_t hex_digits[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
};

#define DEFINE_SERIAL(usart_number, tx_letter, tx_pin, tx_af, rx_letter, rx_pin, rx_af) \
Expand Down Expand Up @@ -95,4 +98,14 @@ void SerialClass::write(uint8_t c) const {

}

ARDUINO_INLINE_MEMBER_FUNCTION
void SerialClass::writeHex(uint32_t n) const {
int32_t i;
uint32_t j;
for (i=7; i>=0; i--) {
j = (n >> (4*i)) & 0xf;
write(hex_digits[j]);
}
}

#endif//_ARDUINO_SERIAL_H_
33 changes: 26 additions & 7 deletions stm32/emulator/inc/FLASH.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,41 @@
* along with ELL-i software. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* @author Pekka Nikander <pekka.nikander@ell-i.org> 2014
*/

#include <Register.h>
#include <Register_FLASH_ACR.h>
#include <Register_FLASH_KEYR.h>
#include <Register_FLASH_OPTKEYR.h>
#include <Register_FLASH_SR.h>
#include <Register_FLASH_CR.h>

class Flash {
public:
DEFINE_REGISTER(32, FLASH, ACR, 0x0000000);
DEFINE_REGISTER(32, FLASH, KEYR, 0x0000000);
DEFINE_REGISTER(32, FLASH, OPTKEYR, 0x0000000);
DEFINE_REGISTER(32, FLASH, SR, 0x0000000);
DEFINE_REGISTER(32, FLASH, CR, 0x0000080);
//DEFINE_REGISTER(32, FLASH, ACR, 0x0000000);
//DEFINE_REGISTER(32, FLASH, KEYR, 0x0000000);
//DEFINE_REGISTER(32, FLASH, OPTKEYR, 0x0000000);
//DEFINE_REGISTER(32, FLASH, SR, 0x0000000);
//DEFINE_REGISTER(32, FLASH, CR, 0x0000080);
Register_FLASH_ACR ACR;
Register_FLASH_KEYR KEYR;
Register_FLASH_OPTKEYR OPTKEYR;
Register_FLASH_SR SR;
Register_FLASH_CR CR;
protected:
Flash()
: ACR()
, CR()
: CR(0x0000080)
{}
public:
static Flash FLASH;

void FLASH_ACR_VALUES( Flash *const flash, CALLBACK(FLASH_ACR_CALLBACK) );
void FLASH_KEYR_VALUES( Flash *const flash, CALLBACK(FLASH_KEYR_CALLBACK) );
void FLASH_OPTKEYR_VALUES( Flash *const flash, CALLBACK(FLASH_OPTKEYR_CALLBACK) );
void FLASH_SR_VALUES( Flash *const flash, CALLBACK(FLASH_SR_CALLBACK) );
void FLASH_CR_VALUES( Flash *const flash, CALLBACK(FLASH_CR_CALLBACK) );
};

Flash *const FLASH = &Flash::FLASH;
43 changes: 43 additions & 0 deletions stm32/emulator/inc/GPIO.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
* along with ELL-i software. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* @author Pekka Nikander <pekka.nikander@ell-i.org> 2014
*/

#include <Register.h>
#include <Register_GPIO_MODER.h>
//#include <Register_GPIO_OTYPER.h>
Expand Down Expand Up @@ -72,6 +76,7 @@ class GeneralPurposeInputOutput {
# error "Unknown MCU die. Please define."
#endif
{}

public:
static GeneralPurposeInputOutput GPIOA;
static GeneralPurposeInputOutput GPIOB;
Expand All @@ -82,6 +87,23 @@ class GeneralPurposeInputOutput {
static GeneralPurposeInputOutput GPIOG;
static GeneralPurposeInputOutput GPIOH;
static GeneralPurposeInputOutput GPIOI;

void GPIO_MODER_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_MODER_CALLBACK) );
void GPIO_PUPDR_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_PUPDR_CALLBACK) );
void GPIO_ODR_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_ODR_CALLBACK) );
void GPIO_IDR_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_IDR_CALLBACK) );
#if defined(__STM32F407__) || defined(__STM32F334__)
void GPIO_BSRRL_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_BSRRL_CALLBACK) );
void GPIO_AFR_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_AFR_CALLBACK) );
void GPIO_BSRRH_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_BSRRH_CALLBACK) );
#elif defined(__STM32F051__)
void GPIO_BSRR_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_BSRR_CALLBACK) );
void GPIO_AFR_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_AFR_CALLBACK) );
void GPIO_BRR_VALUES( GeneralPurposeInputOutput *const gpioPort, CALLBACK(GPIO_BRR_CALLBACK) );
#else
# error "Unknown MCU die. Please define."
#endif

};

GeneralPurposeInputOutput *const GPIOA = &GeneralPurposeInputOutput::GPIOA;
Expand All @@ -93,3 +115,24 @@ GeneralPurposeInputOutput *const GPIOF = &GeneralPurposeInputOutput::GPIOF;
GeneralPurposeInputOutput *const GPIOG = &GeneralPurposeInputOutput::GPIOG;
GeneralPurposeInputOutput *const GPIOH = &GeneralPurposeInputOutput::GPIOH;
GeneralPurposeInputOutput *const GPIOI = &GeneralPurposeInputOutput::GPIOI;

/*
* Define macro for GPIO array index calculation from const char* string
* for table based approach and code readability
*/
#define IDX(port) (port[0] - 'A')

/*
* An array of GPIO ports, the index of which is calculated according to
* the GPIO port for the board
*/
GeneralPurposeInputOutput *const GPIOPORT[] = { GPIOA
, GPIOB
, GPIOC
, GPIOD
, GPIOE
, GPIOF
, GPIOG
, GPIOH
, GPIOI
};
19 changes: 17 additions & 2 deletions stm32/emulator/inc/PWR.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,35 @@
* along with ELL-i software. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* @author Pekka Nikander <pekka.nikander@ell-i.org> 2014
*/

#ifndef _PWR_H_
#define _PWR_H_

#include <Register.h>
#if defined(__STM32F407__)
# include <Register_PWR_CR.h>
#endif

class PowerController {
public:
#if defined(__STM32F407__)
DEFINE_REGISTER(32, PWR, CR, 0x00004000); // XXX Check, set to reset value
//DEFINE_REGISTER(32, PWR, CR, 0x00004000); // XXX Check, set to reset value
Register_PWR_CR CR;
#endif
protected:
PowerController() {}
PowerController()
#if defined(__STM32F407__)
: CR(0x00004000)
#endif
{}
public:
static PowerController PWR;
#if defined(__STM32F407__)
void PWR_CR_VALUES( PowerController *const pwr, CALLBACK(PWR_CR_CALLBACK) );
#endif
};

PowerController *const PWR = &PowerController::PWR;
Expand Down
Loading