Missing fw-extra submodule

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.