summaryrefslogtreecommitdiff
path: root/python-pynrfjprog.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-12 01:00:16 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-12 01:00:16 +0000
commit7fc28bcc5c9923a7ddd1cfd82a4873661a2aad10 (patch)
treef67b19aaf523ac113181492e4f98defceed9f0ed /python-pynrfjprog.spec
parent1448e3ac7a72852d2792a3aa074a1ae04404b52d (diff)
automatic import of python-pynrfjprog
Diffstat (limited to 'python-pynrfjprog.spec')
-rw-r--r--python-pynrfjprog.spec432
1 files changed, 432 insertions, 0 deletions
diff --git a/python-pynrfjprog.spec b/python-pynrfjprog.spec
new file mode 100644
index 0000000..a0b864d
--- /dev/null
+++ b/python-pynrfjprog.spec
@@ -0,0 +1,432 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pynrfjprog
+Version: 10.19.0
+Release: 1
+Summary: A simple Python interface for the nrfjprog functionality
+License: Nordic 5-clause License
+URL: http://www.nordicsemi.com/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/98/be/bb928065c624688061f3c486478ce5473ccfa9fdc47a8bf01450f6959b37/pynrfjprog-10.19.0.tar.gz
+BuildArch: noarch
+
+
+%description
+[![PyPI](https://img.shields.io/static/v1?label=license&message=Nordic%205-Clause%20License&color=brightgreen)](https://github.com/NordicSemiconductor/pynrfjprog/blob/master/LICENSE)
+![PyPI](https://img.shields.io/static/v1?label=platform&message=windows%20%7C%20linux%20%7C%20osx&color=lightgrey)
+![PyPI](https://img.shields.io/static/v1?label=python&message=>=3.6&color=blue) [![PyPI](https://img.shields.io/pypi/v/pynrfjprog)](https://pypi.org/project/pynrfjprog/)
+
+# pynrfjprog
+Python wrapper around the nrfjprog dynamic link libraries (DLL). Use of this API allows developers to program/debug nRF SOC and SIP devices from the interpreter, write simple scripts for a more efficient development work flow, or write automated test frameworks. It can also be used to create applications in Python (i.e. command-line tools).
+
+## Use-cases
+* Maximizing development efficiency: i.e. a script to perform various operations every time an application is built and run (could be hooked into a Makefile or automated build system etc...).
+* Automated testing: [Testing Production Programming tools on nRF5 using pynrfjprog](https://github.com/NordicSemiconductor/nrf52-production-programming/blob/master/tests/example_test_script.py).
+
+## Dependencies
+```python
+"""
+Detailed below is how our software is stacked. Each layer depends on the layer below.
+"""
+pynrfjprog # Imports and wraps the nrfjprog DLL in Python.
+nrfjprogdll # A DLL that wraps SEGGER's JLink API for nRF5 devices.
+JLinkARMDLL # A DLL provided by SEGGER that works with SEGGER debuggers. Performs all low level operations with target device.
+```
+
+* [J-Link Software and Documentation Pack](https://www.segger.com/jlink-software.html) will install the JLink libraries pynrfjprog depends on in the correct installation directory.
+* The nrfjprog libraries are installed with pynrfjprog and are included in pynrfjprog/OPERATING_SYSTEM/.
+
+## Structure
+```pynrfjprog
+pynrfjprog
+ ├── pynrfjprog
+ │ ├──__init__.py # Package marker to make pynrfjprog a module. Also defines the version number
+ │ ├── API.py # Legacy name of LowLevel.py. It's kept for backward support
+ │ ├── APIError.py # Wrapper for the error return codes of the DLL
+ │ ├── Hex.py # Hex parsing library
+ │ ├── HighLevel.py # Wrapper for the nrfjprog highlevel DLL
+ │ ├── JLink.py # Finds the JLinkARM DLL required by pynrfjprog
+ │ ├── LowLevel.py # Wrapper for the nrfjprog DLL, previously API.py
+ │ ├── MultiAPI.py # Allow multiple devices (up to 128) to be programmed simultaneously with a LowLevel API
+ │ ├── lib_armhf
+ │ │ └── # armhf nrfjprog libraries
+ │ ├── lib_x64
+ │ │ └── # 64-bit nrfjprog libraries
+ │ ├── lib_x86
+ │ │ └── # 32-bit nrfjprog libraries
+ │ ├── docs
+ │ │ └── # Header files of the nrfjprog DLL to provide in-depth documentation of the functions that are wrapped
+ │ └── examples
+ │ └── # Example scripts to show off the different APIs
+ ├── LICENSE
+ ├── README.md
+ ├── requirements.txt
+ └── pyproject.toml
+
+
+
+```
+
+## Getting started
+To install latest release from PyPI:
+```
+pip install pynrfjprog
+```
+To install from source\:
+```
+python -m pip install path_to_unzipped_pynrfjprog
+```
+Open the Python interpreter and connect nRF device to PC:
+```
+from pynrfjprog import LowLevel
+
+with LowLevel.API('NRF52') as api:
+ api.enum_emu_snr()
+ api.connect_to_emu_without_snr()
+ api.erase_all()
+ api.write_u32(ADDRESS, DATA, IS_FLASH)
+ api.disconnect_from_emu()
+```
+
+To work with multiple nRF devices at once:
+```
+import LowLevel
+
+api = LowLevel.API('NRF52')
+api.open()
+
+api2 = LowLevel.API('NRF52')
+api2.open()
+
+api3 = LowLevel.API('NRF51')
+api3.open()
+
+api.close()
+api2.close()
+api3.close()
+```
+
+To program hex files using the HighLevel API:
+```
+from pynrfjprog import HighLevel
+
+with HighLevel.API() as api:
+ snrs = api.get_connected_probes()
+
+ # To program J-Link probe at snr <snr>:
+ with HighLevel.DebugProbe(api, <snr>) as probe:
+ probe.program(<hex_file>)
+
+ # To program MCUBoot target at serial port <serial>:
+ with HighLevel.MCUBootDFUProbe(api, <serial>) as probe:
+ probe.program(<hex_file>)
+
+ # To update LTE modem connected to J-Link probe at snr <snr>:
+ with HighLevel.IPCDFUProbe(api, <snr>, HighLevel.CoProcessor.CP_MODEM) as probe:
+ probe.program(<zip_file>, HighLevel.ProgramOptions(verify = HighLevel.VerifyAction.VERIFY_HASH))
+```
+Note: Only one HighLevel API can be instantiated and opened at a time. Several HighLevel probes can be opened from the same API at the same time.
+
+## Contributing
+Contributing is encouraged along with the following coding standards.
+* [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html)
+* http://www.clifford.at/style.html
+* [Semantic versioning](http://semver.org/)
+
+
+%package -n python3-pynrfjprog
+Summary: A simple Python interface for the nrfjprog functionality
+Provides: python-pynrfjprog
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pynrfjprog
+[![PyPI](https://img.shields.io/static/v1?label=license&message=Nordic%205-Clause%20License&color=brightgreen)](https://github.com/NordicSemiconductor/pynrfjprog/blob/master/LICENSE)
+![PyPI](https://img.shields.io/static/v1?label=platform&message=windows%20%7C%20linux%20%7C%20osx&color=lightgrey)
+![PyPI](https://img.shields.io/static/v1?label=python&message=>=3.6&color=blue) [![PyPI](https://img.shields.io/pypi/v/pynrfjprog)](https://pypi.org/project/pynrfjprog/)
+
+# pynrfjprog
+Python wrapper around the nrfjprog dynamic link libraries (DLL). Use of this API allows developers to program/debug nRF SOC and SIP devices from the interpreter, write simple scripts for a more efficient development work flow, or write automated test frameworks. It can also be used to create applications in Python (i.e. command-line tools).
+
+## Use-cases
+* Maximizing development efficiency: i.e. a script to perform various operations every time an application is built and run (could be hooked into a Makefile or automated build system etc...).
+* Automated testing: [Testing Production Programming tools on nRF5 using pynrfjprog](https://github.com/NordicSemiconductor/nrf52-production-programming/blob/master/tests/example_test_script.py).
+
+## Dependencies
+```python
+"""
+Detailed below is how our software is stacked. Each layer depends on the layer below.
+"""
+pynrfjprog # Imports and wraps the nrfjprog DLL in Python.
+nrfjprogdll # A DLL that wraps SEGGER's JLink API for nRF5 devices.
+JLinkARMDLL # A DLL provided by SEGGER that works with SEGGER debuggers. Performs all low level operations with target device.
+```
+
+* [J-Link Software and Documentation Pack](https://www.segger.com/jlink-software.html) will install the JLink libraries pynrfjprog depends on in the correct installation directory.
+* The nrfjprog libraries are installed with pynrfjprog and are included in pynrfjprog/OPERATING_SYSTEM/.
+
+## Structure
+```pynrfjprog
+pynrfjprog
+ ├── pynrfjprog
+ │ ├──__init__.py # Package marker to make pynrfjprog a module. Also defines the version number
+ │ ├── API.py # Legacy name of LowLevel.py. It's kept for backward support
+ │ ├── APIError.py # Wrapper for the error return codes of the DLL
+ │ ├── Hex.py # Hex parsing library
+ │ ├── HighLevel.py # Wrapper for the nrfjprog highlevel DLL
+ │ ├── JLink.py # Finds the JLinkARM DLL required by pynrfjprog
+ │ ├── LowLevel.py # Wrapper for the nrfjprog DLL, previously API.py
+ │ ├── MultiAPI.py # Allow multiple devices (up to 128) to be programmed simultaneously with a LowLevel API
+ │ ├── lib_armhf
+ │ │ └── # armhf nrfjprog libraries
+ │ ├── lib_x64
+ │ │ └── # 64-bit nrfjprog libraries
+ │ ├── lib_x86
+ │ │ └── # 32-bit nrfjprog libraries
+ │ ├── docs
+ │ │ └── # Header files of the nrfjprog DLL to provide in-depth documentation of the functions that are wrapped
+ │ └── examples
+ │ └── # Example scripts to show off the different APIs
+ ├── LICENSE
+ ├── README.md
+ ├── requirements.txt
+ └── pyproject.toml
+
+
+
+```
+
+## Getting started
+To install latest release from PyPI:
+```
+pip install pynrfjprog
+```
+To install from source\:
+```
+python -m pip install path_to_unzipped_pynrfjprog
+```
+Open the Python interpreter and connect nRF device to PC:
+```
+from pynrfjprog import LowLevel
+
+with LowLevel.API('NRF52') as api:
+ api.enum_emu_snr()
+ api.connect_to_emu_without_snr()
+ api.erase_all()
+ api.write_u32(ADDRESS, DATA, IS_FLASH)
+ api.disconnect_from_emu()
+```
+
+To work with multiple nRF devices at once:
+```
+import LowLevel
+
+api = LowLevel.API('NRF52')
+api.open()
+
+api2 = LowLevel.API('NRF52')
+api2.open()
+
+api3 = LowLevel.API('NRF51')
+api3.open()
+
+api.close()
+api2.close()
+api3.close()
+```
+
+To program hex files using the HighLevel API:
+```
+from pynrfjprog import HighLevel
+
+with HighLevel.API() as api:
+ snrs = api.get_connected_probes()
+
+ # To program J-Link probe at snr <snr>:
+ with HighLevel.DebugProbe(api, <snr>) as probe:
+ probe.program(<hex_file>)
+
+ # To program MCUBoot target at serial port <serial>:
+ with HighLevel.MCUBootDFUProbe(api, <serial>) as probe:
+ probe.program(<hex_file>)
+
+ # To update LTE modem connected to J-Link probe at snr <snr>:
+ with HighLevel.IPCDFUProbe(api, <snr>, HighLevel.CoProcessor.CP_MODEM) as probe:
+ probe.program(<zip_file>, HighLevel.ProgramOptions(verify = HighLevel.VerifyAction.VERIFY_HASH))
+```
+Note: Only one HighLevel API can be instantiated and opened at a time. Several HighLevel probes can be opened from the same API at the same time.
+
+## Contributing
+Contributing is encouraged along with the following coding standards.
+* [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html)
+* http://www.clifford.at/style.html
+* [Semantic versioning](http://semver.org/)
+
+
+%package help
+Summary: Development documents and examples for pynrfjprog
+Provides: python3-pynrfjprog-doc
+%description help
+[![PyPI](https://img.shields.io/static/v1?label=license&message=Nordic%205-Clause%20License&color=brightgreen)](https://github.com/NordicSemiconductor/pynrfjprog/blob/master/LICENSE)
+![PyPI](https://img.shields.io/static/v1?label=platform&message=windows%20%7C%20linux%20%7C%20osx&color=lightgrey)
+![PyPI](https://img.shields.io/static/v1?label=python&message=>=3.6&color=blue) [![PyPI](https://img.shields.io/pypi/v/pynrfjprog)](https://pypi.org/project/pynrfjprog/)
+
+# pynrfjprog
+Python wrapper around the nrfjprog dynamic link libraries (DLL). Use of this API allows developers to program/debug nRF SOC and SIP devices from the interpreter, write simple scripts for a more efficient development work flow, or write automated test frameworks. It can also be used to create applications in Python (i.e. command-line tools).
+
+## Use-cases
+* Maximizing development efficiency: i.e. a script to perform various operations every time an application is built and run (could be hooked into a Makefile or automated build system etc...).
+* Automated testing: [Testing Production Programming tools on nRF5 using pynrfjprog](https://github.com/NordicSemiconductor/nrf52-production-programming/blob/master/tests/example_test_script.py).
+
+## Dependencies
+```python
+"""
+Detailed below is how our software is stacked. Each layer depends on the layer below.
+"""
+pynrfjprog # Imports and wraps the nrfjprog DLL in Python.
+nrfjprogdll # A DLL that wraps SEGGER's JLink API for nRF5 devices.
+JLinkARMDLL # A DLL provided by SEGGER that works with SEGGER debuggers. Performs all low level operations with target device.
+```
+
+* [J-Link Software and Documentation Pack](https://www.segger.com/jlink-software.html) will install the JLink libraries pynrfjprog depends on in the correct installation directory.
+* The nrfjprog libraries are installed with pynrfjprog and are included in pynrfjprog/OPERATING_SYSTEM/.
+
+## Structure
+```pynrfjprog
+pynrfjprog
+ ├── pynrfjprog
+ │ ├──__init__.py # Package marker to make pynrfjprog a module. Also defines the version number
+ │ ├── API.py # Legacy name of LowLevel.py. It's kept for backward support
+ │ ├── APIError.py # Wrapper for the error return codes of the DLL
+ │ ├── Hex.py # Hex parsing library
+ │ ├── HighLevel.py # Wrapper for the nrfjprog highlevel DLL
+ │ ├── JLink.py # Finds the JLinkARM DLL required by pynrfjprog
+ │ ├── LowLevel.py # Wrapper for the nrfjprog DLL, previously API.py
+ │ ├── MultiAPI.py # Allow multiple devices (up to 128) to be programmed simultaneously with a LowLevel API
+ │ ├── lib_armhf
+ │ │ └── # armhf nrfjprog libraries
+ │ ├── lib_x64
+ │ │ └── # 64-bit nrfjprog libraries
+ │ ├── lib_x86
+ │ │ └── # 32-bit nrfjprog libraries
+ │ ├── docs
+ │ │ └── # Header files of the nrfjprog DLL to provide in-depth documentation of the functions that are wrapped
+ │ └── examples
+ │ └── # Example scripts to show off the different APIs
+ ├── LICENSE
+ ├── README.md
+ ├── requirements.txt
+ └── pyproject.toml
+
+
+
+```
+
+## Getting started
+To install latest release from PyPI:
+```
+pip install pynrfjprog
+```
+To install from source\:
+```
+python -m pip install path_to_unzipped_pynrfjprog
+```
+Open the Python interpreter and connect nRF device to PC:
+```
+from pynrfjprog import LowLevel
+
+with LowLevel.API('NRF52') as api:
+ api.enum_emu_snr()
+ api.connect_to_emu_without_snr()
+ api.erase_all()
+ api.write_u32(ADDRESS, DATA, IS_FLASH)
+ api.disconnect_from_emu()
+```
+
+To work with multiple nRF devices at once:
+```
+import LowLevel
+
+api = LowLevel.API('NRF52')
+api.open()
+
+api2 = LowLevel.API('NRF52')
+api2.open()
+
+api3 = LowLevel.API('NRF51')
+api3.open()
+
+api.close()
+api2.close()
+api3.close()
+```
+
+To program hex files using the HighLevel API:
+```
+from pynrfjprog import HighLevel
+
+with HighLevel.API() as api:
+ snrs = api.get_connected_probes()
+
+ # To program J-Link probe at snr <snr>:
+ with HighLevel.DebugProbe(api, <snr>) as probe:
+ probe.program(<hex_file>)
+
+ # To program MCUBoot target at serial port <serial>:
+ with HighLevel.MCUBootDFUProbe(api, <serial>) as probe:
+ probe.program(<hex_file>)
+
+ # To update LTE modem connected to J-Link probe at snr <snr>:
+ with HighLevel.IPCDFUProbe(api, <snr>, HighLevel.CoProcessor.CP_MODEM) as probe:
+ probe.program(<zip_file>, HighLevel.ProgramOptions(verify = HighLevel.VerifyAction.VERIFY_HASH))
+```
+Note: Only one HighLevel API can be instantiated and opened at a time. Several HighLevel probes can be opened from the same API at the same time.
+
+## Contributing
+Contributing is encouraged along with the following coding standards.
+* [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html)
+* http://www.clifford.at/style.html
+* [Semantic versioning](http://semver.org/)
+
+
+%prep
+%autosetup -n pynrfjprog-10.19.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pynrfjprog -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 10.19.0-1
+- Package Spec generated