SPI (MISO,MOSI) used in sketch; possible to re-program via external programmer?

ATmega32U4
Sketch uses "all" the memory (no bootloader) and the SPI pins are used in the sketch for communications with an 0.93" OLED display.

After downloading the sketch, would an external programmer (Atmel -ICE) be able to interrupt the constant stream of data being sent on the SPI pins and re-download an updated sketch?

(deleted)

The Atmel-ICE can do JTAG right? and the 32U4 has JTAG pins. I don't think the 32U4 has debugWIRE like a 328p. On a 328p the reset pin function can be swapped for debugWIRE (for reference that will lockout bootloading).

As long as the other devices are well-behaved SPI devices (as opposed to those few that can't tristate their data out line), and their CS lines are kept high, you should be able to program via ISP without issue.

You will need pullups to keep the CS lines high while the chip is in reset state, but otherwise it should work.

I cant TRY as I don’t have the programmer… trying to find a solution before spending the money.

JTAG pins are also used in the sketch.

In my design, I can pull the microcontroller from the circuit, so other devices won’t interfere (ProMicro board piggy backed on my PCB).

I’m afraid once I download the sketch without bootloader, all the pins will assume their functions (eg: the SPI pins will start blasting out data for the display) and the programmer will never be able to connect to the micro-controller again to download another program.

Doing that may be ok for a finished product, mass produced, but I need to get back in there and fine tune my program.

RazOn:
I cant TRY as I don't have the programmer... trying to find a solution before spending the money.

JTAG pins are also used in the sketch.

In my design, I can pull the microcontroller from the circuit, so other devices won't interfere (ProMicro board piggy backed on my PCB).

I'm afraid once I download the sketch without bootloader, all the pins will assume their functions (eg: the SPI pins will start blasting out data for the display) and the programmer will never be able to connect to the micro-controller again to download another program.

During ISP programming the reset pin is asserted, so the part is put into reset state and no user code is running.

You need to look at the 32U4 datasheet. The on-chip debug system looks to need JTAG. Searching through the datasheet for "debug" I don't see anything saying it works with SPI or any other access port.

So if JTAG is not available then you will have to debug the Arduino way, which is to send a message to the UART, or blink an LED at different rates. Also don't be afraid to make small programs and test anything that can stand alone before cementing it together.

Is he using jtag or debugging? I was under the impression that he was just planning to use ISP programming

I guess I’m interested in ANY method that would allow me to re-program the ATmega32U4 with my sketch on it.

I specifically asked about SPI, because the datasheet for the microcontroller mentions it:
“The On-chip ISP Flash allows the program memory to be reprogrammed in-system through an SPI serial interface, by a conventional nonvolatile memory programmer, or by an On-chip Boot program running on the AVR core.” … any method would do though.

Developed/tested the code in sections (all works), now I need to test it as a whole; due to program size, I need to get rid of the bootloader.

I want to know if it’s a “one time deal”, of if I can go back, tweak the program and re-download.

Nick Gammon's sketch to load a sketch from SD card would work
http://www.gammon.com.au/forum/?id=11638
My card was built to run that sketch.
http://www.crossroadsfencing.com/BobuinoRev17/

Oops... I may have looked at something else and decided this was about debugging.

You can reload with ISP, it is not a one time deal.

RazOn:
I specifically asked about SPI, because the datasheet for the microcontroller mentions it:
"The On-chip ISP Flash allows the program memory to be reprogrammed in-system through an SPI serial interface, by a conventional nonvolatile memory programmer, or by an On-chip Boot program running on the AVR core." .... any method would do though.

Developed/tested the code in sections (all works), now I need to test it as a whole; due to program size, I need to get rid of the bootloader.

I want to know if it's a "one time deal", of if I can go back, tweak the program and re-download.

Yes, you can reprogram, I addressed this in my first reply above.