Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
opetany93 committed Jan 19, 2018
0 parents commit ac20939
Show file tree
Hide file tree
Showing 9 changed files with 475 additions and 0 deletions.
62 changes: 62 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
*.bak

*.rpt

*.done

*.summary

*.jdi

*.pin

*.qsf

*.sof

*.html

*.sopcinfo

*.bsf

*.txt

*.qpf

.qsys_edit

ubcmcld
system
incremental_db

db/

obj/

.force_relink

.project

.settings/

*.properties

.sopc_builder/

*.objdump

Makefile
.cproject
!src/
*.qws
Pathfinder_BSP/
obj/
*.objdump
*.elf
!*.c
!*.h
!*.java
*.db
.DS_Store
*.map
114 changes: 114 additions & 0 deletions create-this-app
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
#!/bin/bash
#
# This script creates the hello_world_small application in this directory.


BSP_DIR=../KCC_bsp
QUARTUS_PROJECT_DIR=../../
NIOS2_APP_GEN_ARGS="--elf-name KCC.elf --set APP_CFLAGS_OPTIMIZATION -Os --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world_small.c"


# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set.
# This variable is required for the command line tools to execute correctly.
if [ -z "${SOPC_KIT_NIOS2}" ]
then
echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set!
exit 1
fi


# Also make sure that the APP has not been created already. Check for
# existence of Makefile in the app directory
if [ -f ./Makefile ]
then
echo Application has already been created! Delete Makefile if you want to create a new application makefile
exit 1
fi


# We are selecting hal_reduced_footprint bsp because it supports this application.
# Check to see if the hal_reduced_footprint has already been generated by checking for
# existence of the public.mk file. If not, we need to run
# create-this-bsp file to generate the bsp.
if [ ! -f ${BSP_DIR}/public.mk ]; then
# Since BSP doesn't exist, create the BSP
# Pass any command line arguments passed to this script to the BSP.
pushd ${BSP_DIR} >> /dev/null
./create-this-bsp "$@" || {
echo "create-this-bsp failed"
exit 1
}
popd >> /dev/null
fi


# Don't run make if create-this-app script is called with --no-make arg
SKIP_MAKE=
while [ $# -gt 0 ]
do
case "$1" in
--no-make)
SKIP_MAKE=1
;;
esac
shift
done


# Now we also need to go copy the sources for this application to the
# local directory.
find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || {
echo "failed during copying example source files"
exit 1
}

find "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || {
echo "failed copying readme file"
}

if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" ]
then
cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world_small/system" . || {
echo "failed during copying project support files"
exit 1
}
fi

chmod -R +w . || {
echo "failed during changing file permissions"
exit 1
}

cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}"

echo "create-this-app: Running \"${cmd}\""
$cmd || {
echo "nios2-app-generate-makefile failed"
exit 1
}

if [ -z "$SKIP_MAKE" ]; then
cmd="make"

echo "create-this-app: Running \"$cmd\""
$cmd || {
echo "make failed"
exit 1
}

echo
echo "To download and run the application:"
echo " 1. Make sure the board is connected to the system."
echo " 2. Run 'nios2-configure-sof <SOF_FILE_PATH>' to configure the FPGA with the hardware design."
echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell."
echo " 4. Run 'make download-elf' from the application directory."
echo
echo "To debug the application:"
echo " Import the project into Nios II Software Build Tools for Eclipse."
echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information."
echo
echo -e ""
fi


exit 0
16 changes: 16 additions & 0 deletions inc/delay.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* delay.h
*
* Created on: 13 sty 2018
* Author: opetany
*/

#ifndef DELAY_H_
#define DELAY_H_

#include <stdint.h>

void delayMs(uint32_t ms);


#endif /* DELAY_H_ */
37 changes: 37 additions & 0 deletions inc/pio_driver.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@


// ================= PORTS DEFINITIONS ==============
#define LED_PORT LEDS_BASE
#define PIO_PORT PIO_BASE

// ================== LEDS DEFINITIONS ==============
#define LED_0 0x01
#define LED_1 0x02
#define LED_2 0x04
#define LED_3 0x08

// ================= PINS DEFINITIONS ===============
#define PIN_0 0x0001
#define PIN_1 0x0002
#define PIN_2 0x0004
#define PIN_3 0x0008
#define PIN_4 0x0010
#define PIN_5 0x0020
#define PIN_6 0x0040
#define PIN_7 0x0080
#define PIN_8 0x0100
#define PIN_9 0x0200
#define PIN_10 0x0400
#define PIN_11 0x0800
#define PIN_12 0x1000
#define PIN_13 0x2000
#define PIN_14 0x4000
#define PIN_15 0x8000

// ======================= Functions definitions ================================
void PIO_Write(int port, int value);
int PIO_Read(int port);
void PIO_SetBit(int port, int value);
void PIO_ClearBit(int port, int value);
int PIO_ReadBit(int port, int pin);
void PIO_Direction(int port, int value);
17 changes: 17 additions & 0 deletions inc/uart.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*
* uart.h
*
* Created on: 13 sty 2018
* Author: opetany
*/

#ifndef UART_H_
#define UART_H_

#include <stdint.h>

void sendStrig(char* s);
void sendData(uint8_t* data, uint16_t size);


#endif /* UART_H_ */
32 changes: 32 additions & 0 deletions src/delay.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* delay.c
*
* Created on: 13 sty 2018
* Author: opetany
*/

#include "../inc/delay.h"
#include "system.h"
#include "altera_avalon_timer_regs.h"

void delayMs(uint32_t ms)
{
uint32_t cnt = 0;

// activate the time
IOWR_ALTERA_AVALON_TIMER_CONTROL(SYS_TIMER_BASE,
ALTERA_AVALON_TIMER_CONTROL_CONT_MSK
| ALTERA_AVALON_TIMER_CONTROL_START_MSK);

while(cnt < ms)
{
while( !(ALTERA_AVALON_TIMER_STATUS_TO_MSK & IORD_ALTERA_AVALON_TIMER_STATUS(SYS_TIMER_BASE)) );
IOWR_ALTERA_AVALON_TIMER_STATUS(SYS_TIMER_BASE, 0);
cnt++;
}

IOWR_ALTERA_AVALON_TIMER_CONTROL(SYS_TIMER_BASE,
ALTERA_AVALON_TIMER_CONTROL_CONT_MSK
| ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
}

Loading

0 comments on commit ac20939

Please sign in to comment.