104 lines
3.1 KiB
Text
104 lines
3.1 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import chipwhisperer as cw\n",
|
|
"\n",
|
|
"try:\n",
|
|
" if not scope.connectStatus:\n",
|
|
" scope.con()\n",
|
|
"except NameError:\n",
|
|
" scope = cw.scope()\n",
|
|
"\n",
|
|
"try:\n",
|
|
" if SS_VER == \"SS_VER_2_1\":\n",
|
|
" target_type = cw.targets.SimpleSerial2\n",
|
|
" elif SS_VER == \"SS_VER_2_0\":\n",
|
|
" raise OSError(\"SS_VER_2_0 is deprecated. Use SS_VER_2_1\")\n",
|
|
" else:\n",
|
|
" target_type = cw.targets.SimpleSerial\n",
|
|
"except:\n",
|
|
" SS_VER=\"SS_VER_1_1\"\n",
|
|
" target_type = cw.targets.SimpleSerial\n",
|
|
"\n",
|
|
"try:\n",
|
|
" target = cw.target(scope, target_type)\n",
|
|
"except:\n",
|
|
" print(\"INFO: Caught exception on reconnecting to target - attempting to reconnect to scope first.\")\n",
|
|
" print(\"INFO: This is a work-around when USB has died without Python knowing. Ignore errors above this line.\")\n",
|
|
" scope = cw.scope()\n",
|
|
" target = cw.target(scope, target_type)\n",
|
|
"\n",
|
|
"\n",
|
|
"print(\"INFO: Found ChipWhisperer😍\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"if \"STM\" in PLATFORM or PLATFORM == \"CWLITEARM\" or PLATFORM == \"CWNANO\":\n",
|
|
" prog = cw.programmers.STM32FProgrammer\n",
|
|
"elif PLATFORM == \"CW303\" or PLATFORM == \"CWLITEXMEGA\":\n",
|
|
" prog = cw.programmers.XMEGAProgrammer\n",
|
|
"elif \"neorv32\" in PLATFORM.lower():\n",
|
|
" prog = cw.programmers.NEORV32Programmer\n",
|
|
"elif PLATFORM == \"CW308_SAM4S\":\n",
|
|
" prog = cw.programmers.SAM4SProgrammer\n",
|
|
"else:\n",
|
|
" prog = None"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import time\n",
|
|
"time.sleep(0.05)\n",
|
|
"scope.default_setup()\n",
|
|
"def reset_target(scope):\n",
|
|
" if PLATFORM == \"CW303\" or PLATFORM == \"CWLITEXMEGA\":\n",
|
|
" scope.io.pdic = 'low'\n",
|
|
" time.sleep(0.1)\n",
|
|
" scope.io.pdic = 'high_z' #XMEGA doesn't like pdic driven high\n",
|
|
" time.sleep(0.1) #xmega needs more startup time\n",
|
|
" elif \"neorv32\" in PLATFORM.lower():\n",
|
|
" raise IOError(\"Default iCE40 neorv32 build does not have external reset - reprogram device to reset\")\n",
|
|
" else: \n",
|
|
" scope.io.nrst = 'low'\n",
|
|
" time.sleep(0.05)\n",
|
|
" scope.io.nrst = 'high_z'\n",
|
|
" time.sleep(0.05)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.10.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|