I can successfully capture AES power consumption curves on both CW308_STM32F0 and CW308_STM32F3, but when I switch the platform to CW308_STM32F1, a firmware build error occurs. I have already downloaded the STM32F1 submodule from GitHub - newaetech/chipwhisperer-fw-extra: Firmware files for extra firmware targets and stored it in the firmware/mcu/hal path, but the error persists. The code and error message are as follows:
SCOPETYPE = ‘OPENADC’
PLATFORM = ‘CW308_STM32F1’
CRYPTO_TARGET = ‘TINYAES128C’
VERSION = ‘SS_VER_2_1’
%%bash -s “$PLATFORM” “$CRYPTO_TARGET” “$SS_VER”
cd ../../../firmware/mcu/simpleserial-aes
make PLATFORM=$1 CRYPTO_TARGET=$2 SS_VER=$3 -j
Building for platform CW308_STM32F1 with CRYPTO_TARGET=TINYAES128C
SS_VER set to SS_VER_1_1
.././hal/Makefile.hal:310: *** Missing fw-extra submodule. See https://github.com/newaetech/chipwhisperer-fw-extra. Stop.
---------------------------------------------------------------------------
CalledProcessError Traceback (most recent call last)
Cell In[4], line 1
----> 1 get_ipython().run_cell_magic('bash', '-s "$PLATFORM" "$CRYPTO_TARGET" "$SS_VER"', 'cd ../../../firmware/mcu/simpleserial-aes\nmake PLATFORM=$1 CRYPTO_TARGET=$2 SS_VER=$3 -j\n')
File ~\ChipWhisperer\cwenv\Lib\site-packages\IPython\core\interactiveshell.py:2542, in InteractiveShell.run_cell_magic(self, magic_name, line, cell)
2540 with self.builtin_trap:
2541 args = (magic_arg_s, cell)
-> 2542 result = fn(*args, **kwargs)
2544 # The code below prevents the output from being displayed
2545 # when using magics with decorator @output_can_be_silenced
2546 # when the last Python token in the expression is a ';'.
2547 if getattr(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, False):
File ~\ChipWhisperer\cwenv\Lib\site-packages\IPython\core\magics\script.py:159, in ScriptMagics._make_script_magic.<locals>.named_script_magic(line, cell)
157 else:
158 line = script
--> 159 return self.shebang(line, cell)
File ~\ChipWhisperer\cwenv\Lib\site-packages\IPython\core\magics\script.py:336, in ScriptMagics.shebang(self, line, cell)
331 if args.raise_error and p.returncode != 0:
332 # If we get here and p.returncode is still None, we must have
333 # killed it but not yet seen its return code. We don't wait for it,
334 # in case it's stuck in uninterruptible sleep. -9 = SIGKILL
335 rc = p.returncode or -9
--> 336 raise CalledProcessError(rc, cell)
CalledProcessError: Command 'b'cd ../../../firmware/mcu/simpleserial-aes\nmake PLATFORM=$1 CRYPTO_TARGET=$2 SS_VER=$3 -j\n'' returned non-zero exit status 2.