Make bootload failing

I was following the tutorial detailed in https://learn.sparkfun.com/tutorials/us … troduction. When I ran the make bootload command, I initially got the following output:

ajay@ajay-Predator-G3-571:~/Desktop/SparkfunEdge/AmbiqSuite-Rel2.0.0/boards/SparkFun_Edge_BSP/examples/example1_edge_test/gcc$ make bootload

Compiling gcc …/src/main.c

Compiling gcc …/…/…/…/…/devices/am_devices_led.c

Compiling gcc …/…/…/…/…/utils/am_util_delay.c

Compiling gcc …/…/…/…/…/utils/am_util_faultisr.c

Compiling gcc …/…/…/…/…/utils/am_util_stdio.c

Compiling gcc startup_gcc.c

Compiling gcc …/src/tf_adc/tf_adc.c

Compiling gcc …/src/tf_accelerometer/tf_accelerometer.c

…/src/tf_accelerometer/tf_accelerometer.c: In function ‘platform_read’:

…/src/tf_accelerometer/tf_accelerometer.c:336:31: warning: assignment from incompatible pointer type

iomTransfer.pui32RxBuffer = bufp; // Link in the RX buffer

^

Compiling gcc …/src/tf_accelerometer/lis2dh12_reg.c

Linking gcc bin/example1_edge_test.axf

Copying gcc bin/example1_edge_test.bin…

…/…/…/…/…/tools/apollo3_scripts/create_cust_image_blob.py --bin bin/example1_edge_test.bin --load-address 0xC000 --magic-num 0xCB -o bin/main_nonsecure_ota --version 0x0

/bin/bash: …/…/…/…/…/tools/apollo3_scripts/create_cust_image_blob.py: Permission denied

Makefile:193: recipe for target ‘wired_update’ failed

make: *** [wired_update] Error 126

I then went to change the permission of create_cust_image_blob.py (ran chmod +x create_cust_image_blob.py) and had the following output

ajay@ajay-Predator-G3-571:~/Desktop/SparkfunEdge/AmbiqSuite-Rel2.0.0/boards/SparkFun_Edge_BSP/examples/example1_edge_test/gcc$ make bootload

Compiling gcc …/src/main.c

Compiling gcc …/…/…/…/…/devices/am_devices_led.c

Compiling gcc …/…/…/…/…/utils/am_util_delay.c

Compiling gcc …/…/…/…/…/utils/am_util_faultisr.c

Compiling gcc …/…/…/…/…/utils/am_util_stdio.c

Compiling gcc startup_gcc.c

Compiling gcc …/src/tf_adc/tf_adc.c

Compiling gcc …/src/tf_accelerometer/tf_accelerometer.c

…/src/tf_accelerometer/tf_accelerometer.c: In function ‘platform_read’:

…/src/tf_accelerometer/tf_accelerometer.c:336:31: warning: assignment from incompatible pointer type

iomTransfer.pui32RxBuffer = bufp; // Link in the RX buffer

^

Compiling gcc …/src/tf_accelerometer/lis2dh12_reg.c

Linking gcc bin/example1_edge_test.axf

Copying gcc bin/example1_edge_test.bin…

…/…/…/…/…/tools/apollo3_scripts/create_cust_image_blob.py --bin bin/example1_edge_test.bin --load-address 0xC000 --magic-num 0xCB -o bin/main_nonsecure_ota --version 0x0

Traceback (most recent call last):

File “…/…/…/…/…/tools/apollo3_scripts/create_cust_image_blob.py”, line 6, in

from Crypto.Cipher import AES

ImportError: No module named ‘Crypto’

Makefile:193: recipe for target ‘wired_update’ failed

make: *** [wired_update] Error 1

I followed the tutorial in renaming /tools/apollo3_scripts/keys_info0.py and changing the permissions for bsp/tools/uart_wired_update_sparkfun.py . Is there a reason I may experiencing this?

Looks like you may have glanced over the additionaly Python packages that needed to be installed.

With Python3 installed we will also need ‘pycryptodome’ to generate secure bootloader images and ‘pyserial’ to upload them over the UART.

No worries though, it should be pretty straightforward with these commands

pip3 install pycryptodome
pip3 install pyserial

Hope that helps!