123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #!/bin/bash
- #
- # This script creates the hello_world application in this directory.
- BSP_DIR=../hello_world_bsp
- QUARTUS_PROJECT_DIR=../../
- NIOS2_APP_GEN_ARGS="--elf-name hello_world.elf --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world.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_default bsp because it supports this application.
- # Check to see if the hal_default 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/" -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/" -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/system" ]
- then
- cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world/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
|