The reg commands set the pins properly, and then the Cyclone ACP starts and performs a hardware reset on the target, so the pins reset again. The next script sets the pins back to a safe state and they stay that way through another target task that loads the bootloader. According to P&E the target task download function is Freescale-provided and they don't know anything about how it's implemented. The problem here is in the P&E standard download and I've got P&E working on a solution. Here's the log output:
Executing Initialization File: ...\Project_Settings\Debugger\init_kinetis.tcl
radix x
cmdwin::eclipse::config hexprefix 0x
cmdwin::eclipse::config MemIdentifier p
cmdwin::eclipse::config MemWidth 32
cmdwin::eclipse::config MemAccess 32
cmdwin::eclipse::config MemSwap off
cmdwin::reg SIM_SCGC5 = 0X00040382
cmdwin::reg GPIOA_PDDR = 0X00000030
cmdwin::reg GPIOA_PDOR = 0x00000000
cmdwin::reg PORTA_PCR4 = 0X00000100
cmdwin::reg PORTA_PCR5 = 0X00000100
/* pins are now set properly */
cmdwin::reg User\/System Mode Registers/LR = 0xFFFFFFFF
cmdwin::reg Core Debug Registers/DEMCR = 0x1000001
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_FUNCTION0 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_FUNCTION1 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_FUNCTION2 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_FUNCTION3 = 0x0
cmdwin::reg Flash Patch and Breakpoint Unit Registers/FP_COMP0 = 0x0
cmdwin::reg Flash Patch and Breakpoint Unit Registers/FP_COMP1 = 0x0
cmdwin::reg Flash Patch and Breakpoint Unit Registers/FP_COMP2 = 0x0
cmdwin::reg Flash Patch and Breakpoint Unit Registers/FP_COMP3 = 0x0
cmdwin::reg Flash Patch and Breakpoint Unit Registers/FP_COMP4 = 0x0
cmdwin::reg Flash Patch and Breakpoint Unit Registers/FP_COMP5 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_CTRL = 0x40000000
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_CYCCNT = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_CPICNT = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_EXCCNT = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_SLEEPCNT = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_LSUCNT = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_FOLDCNT = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_COMP0 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_COMP1 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_COMP2 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_COMP3 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_MASK0 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_MASK1 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_MASK2 = 0x0
cmdwin::reg Data Watchpoint and Trace Unit Registers/DWT_MASK3 = 0x0
cmdwin::reg Instrumentation Trace Macrocell Registers/ITM_LAR = 0xc5acce55
cmdwin::reg Instrumentation Trace Macrocell Registers/ITM_TER = 0x0
cmdwin::reg Instrumentation Trace Macrocell Registers/ITM_TPR = 0x0
cmdwin::reg Instrumentation Trace Macrocell Registers/ITM_TCR = 0x0
cmdwin::reg Instrumentation Trace Macrocell Registers/ITM_LAR = 0x1
cmdwin::reg Embedded Trace Funnel Registers/ETF_FCR = 0x300
cmdwin::reg System Control Registers/SCB_VTOR = 0x20000000
Starting 3rd party flash programming...
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : STARTUP, Entry : SPECIFY_NETWORKCARD_ENABLED, Value : 0, R) => DI_OK
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : PARTITION_PARAM, Value : 0, R) => DI_ERR_NONFATAL
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : DO_PARTITIONING, Value : 0, R) => DI_ERR_NONFATAL
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : DOTRIM, Value : 0, R) => DI_OK
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : CUSTOM_TRIM, Value : 0, R) => DI_OK
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : NGS_TRIM_OVERRIDE_REFERENCE_FREQUENCY, Value : 3276800, R) => DI_OK
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : PARTITION_PARAM, Value : 0, R) => DI_ERR_NONFATAL
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : DO_PARTITIONING, Value : 0, R) => DI_ERR_NONFATAL
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : DOTRIM, Value : 0, R) => DI_OK
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : CUSTOM_TRIM, Value : 0, R) => DI_OK
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : NGS_TRIM_OVERRIDE_REFERENCE_FREQUENCY, Value : 3276800, R) => DI_OK
INF: Copyright 2012 P&E Microcomputer Systems,Inc.
INF: Command Line :"C:\Freescale\CW MCU v10.7\eclipse\..\MCU\bin\de.exe" -noni -language en -ORBendPoint giop:tcp:127.0.0.1: -ORBtraceLevel 0
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : IS_GDB_CONFIG, Value : 0, R) => DI_ERR_NONFATAL
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : PARTITION_PARAM, Value : 0, R) => DI_ERR_NONFATAL
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : DO_PARTITIONING, Value : 0, R) => DI_ERR_NONFATAL
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : DOTRIM, Value : 0, R) => DI_OK
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : CUSTOM_TRIM, Value : 0, R) => DI_OK
GDI: Mtwks Callback(MTWKS_CB_PROJECTACCESS, Section : PEDEBUG, Entry : NGS_TRIM_OVERRIDE_REFERENCE_FREQUENCY, Value : 3276800, R) => DI_OK
INF: CMD>RE
INF: Initializing.
INF: Target has been RESET and is active.
/* pins are now back to default state */
INF: CMD>CM C:\Freescale\CW MCU v10.7\MCU\bin\Plugins\support\arm\gdi\P&E\k22fn1m0m12_pflash_pipeline.arp
INF: Initializing.
INF: Initialized.
INF: ;version 1.01, 07/17/2013, Copyright P&E Microcomputer Systems, www.pemicro.com [mk22_1024k_n_pflash0_pflash1_m10]
INF: ;device freescale, k22fn1m0m12, 1x32x256k, desc=pflash_pipeline
INF: ;begin_cs device=$00000000, length=$00100000, ram=$20000000
INF: Loading programming algorithm ...
INF: Done.
INF: CMD>EM
INF: Erasing.
INF: Module has been erased.
INF: Reloading programming algorithm ...
INF: done.
INF: CMD>PM
INF: Programming.
INF: Processing Object File Data ...
INF: .
INF: Programmed.
INF: CMD>VC
INF: Verifying object file CRC-16 to device ranges ...
INF: block 00000000-00000187 ...
INF: Ok.
INF: block 00000410-00000413 ...
INF: Ok.
INF: block 00000418-00031CB3 ...
INF: Ok.
INF: Checksum Verification Successful. (Cumulative CRC-16=$93C7)
INF: CMD>RE
INF: Initializing.
INF: Target has been RESET and is active.
Executing download task: S:\projects\ADS-SR2\code\Project_Settings\Debugger\set_ptt.tcl
cmdwin::reg SIM_SCGC5 = 0X00040382
cmdwin::reg GPIOA_PDDR = 0X00000030
cmdwin::reg GPIOA_PDOR = 0x00000000
cmdwin::reg PORTA_PCR4 = 0X00000100
cmdwin::reg PORTA_PCR5 = 0X00000100
/* pins are safe again, and stay that way through the rest of the process */
Executing download task: ...\Load Bootloader.tcl
cmdwin::fl::target -lc SR2 Debug
thread break: Stopped, 0x0, 0x0, cpuARMLittle, ADS-SR2.elf (state, tid, pid, cpu, target)
cmdwin::fl::target -b 0x1fff0000 0x20000
cmdwin::fl::target -v off -l off
cmdwin::fl::device -d FTFE_PFlash1M0 -o 128Kx64x1 -a 0x0 0xfffff
cmdwin::fl::image -f ...K22Bootloader.elf -t Auto Detect -re on -r 0xf9000 0xfffff -oe off
cmdwin::fl::write
Beginning Operation ...
-------------------------
Using restricted address range 0x000F9000 to 0x000FFFFF
Programming file ...K22Bootloader.elf
Auto-detection is successful.
File is of type Elf Format.
Performing target initialization ...
Downloading Flash Device Driver ...
Reading flash ID ...
Auto-detection is successful.
File is of type Elf Format.
Downloading 0x00003C08 bytes to be programmed at 0x000F9000
Executing program ....
Program Command Succeeded