From 7fc28bcc5c9923a7ddd1cfd82a4873661a2aad10 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 12 Apr 2023 01:00:16 +0000 Subject: automatic import of python-pynrfjprog --- python-pynrfjprog.spec | 432 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 432 insertions(+) create mode 100644 python-pynrfjprog.spec (limited to 'python-pynrfjprog.spec') 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 : + with HighLevel.DebugProbe(api, ) as probe: + probe.program() + + # To program MCUBoot target at serial port : + with HighLevel.MCUBootDFUProbe(api, ) as probe: + probe.program() + + # To update LTE modem connected to J-Link probe at snr : + with HighLevel.IPCDFUProbe(api, , HighLevel.CoProcessor.CP_MODEM) as probe: + probe.program(, 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 : + with HighLevel.DebugProbe(api, ) as probe: + probe.program() + + # To program MCUBoot target at serial port : + with HighLevel.MCUBootDFUProbe(api, ) as probe: + probe.program() + + # To update LTE modem connected to J-Link probe at snr : + with HighLevel.IPCDFUProbe(api, , HighLevel.CoProcessor.CP_MODEM) as probe: + probe.program(, 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 : + with HighLevel.DebugProbe(api, ) as probe: + probe.program() + + # To program MCUBoot target at serial port : + with HighLevel.MCUBootDFUProbe(api, ) as probe: + probe.program() + + # To update LTE modem connected to J-Link probe at snr : + with HighLevel.IPCDFUProbe(api, , HighLevel.CoProcessor.CP_MODEM) as probe: + probe.program(, 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 - 10.19.0-1 +- Package Spec generated -- cgit v1.2.3