55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/bash
 | 
						|
 | 
						|
if [ ${#1} -eq 0 ]; then
 | 
						|
    echo "usage: dapprog xxx.bit or xxx.svf"
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
CURRENT_DIR=$(cd $(dirname $0); pwd)
 | 
						|
CONFIG=${CURRENT_DIR}/cmsisdap.cfg
 | 
						|
 | 
						|
if [ "$1" == "--probe" ] || [ "$1" == "-p" ]; then
 | 
						|
    #probe add -d4 for detail log
 | 
						|
    sudo openocd -f ${CONFIG} -c \
 | 
						|
    "   init;
 | 
						|
        scan_chain;
 | 
						|
        exit;
 | 
						|
    "
 | 
						|
    exit $?
 | 
						|
 | 
						|
else
 | 
						|
    # program 
 | 
						|
    IMAGE_FILE=$1
 | 
						|
    
 | 
						|
    EXT="${IMAGE_FILE##*.}"
 | 
						|
    echo EXT: $EXT
 | 
						|
    
 | 
						|
    #flash write_image erase xxx.hex;
 | 
						|
    #flash write_image erase xxx.bin 0x08000000;
 | 
						|
    
 | 
						|
    if [ "${EXT}" == "svf" ]; then
 | 
						|
        TARGET="$IMAGE_FILE"
 | 
						|
    elif [ "${EXT}" == "bit" ]; then
 | 
						|
        NAME="${IMAGE_FILE%%.bit}"
 | 
						|
        #/home/pi/oss/ulx3s/tools/ujprog/ujprog -j SRAM  ${IMAGE_FILE} > ${NAME}_sram.svf
 | 
						|
        ${CURRENT_DIR}/ujprog.bit2svf -j FLASH ${IMAGE_FILE} > ${NAME}_flash.svf
 | 
						|
        TARGET="${NAME}_flash.svf"
 | 
						|
    else
 | 
						|
        echo "illegal suffix [$EXT]"
 | 
						|
        exit 1
 | 
						|
    fi
 | 
						|
    
 | 
						|
    echo "TARGET: ${TARGET}"
 | 
						|
    
 | 
						|
    sudo openocd -f ${CONFIG} -c \
 | 
						|
    "   init;
 | 
						|
        scan_chain;
 | 
						|
        svf -tap ecp5.tap -quiet -progress ${TARGET};
 | 
						|
        exit;
 | 
						|
    "
 | 
						|
    
 | 
						|
    exit $?
 | 
						|
 | 
						|
fi
 | 
						|
 |