From edc5e44ba5e5206a3adf4e360c783d21a3e1bd04 Mon Sep 17 00:00:00 2001 From: nightwalker-87 <15526941+Nightwalker-87@users.noreply.github.com> Date: Sat, 23 May 2020 20:40:31 +0200 Subject: [PATCH] Updated stlink-v1 driver for macOS - Updated xcode project settings v11.3.1 - Removed support for 10.6-10.12 - Compiled new kexts for macOS 10.13-10.15 - Moved instructions to separate README - Updated installation instructions --- doc/tutorial.md | 65 +- stlinkv1_macos_driver/Makefile | 57 + stlinkv1_macos_driver/README.md | 42 + stlinkv1_macos_driver/install.sh | 22 + .../Contents/Info.plist | 82 + .../Contents/MacOS/stlink_shield_10.13 | Bin 0 -> 33840 bytes .../stlink_shield_10.13.kext/Contents/PkgInfo | 1 + .../Contents/_CodeSignature/CodeResources | 115 ++ .../Contents/Info.plist | 82 + .../Contents/MacOS/stlink_shield_10.14 | Bin 0 -> 33840 bytes .../stlink_shield_10.14.kext/Contents/PkgInfo | 1 + .../Contents/_CodeSignature/CodeResources | 115 ++ .../Contents/Info.plist | 82 + .../Contents/MacOS/stlink_shield_10.15 | Bin 0 -> 33840 bytes .../stlink_shield_10.15.kext/Contents/PkgInfo | 1 + .../Contents/_CodeSignature/CodeResources | 115 ++ .../stlink_shield_xcode/Info.plist | 60 + .../stlink_shield.xcodeproj/Cpu86.mode1v3 | 1395 +++++++++++++++++ .../stlink_shield.xcodeproj/Cpu86.pbxuser | 243 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 71116 bytes .../stlink_shield.xcodeproj/project.pbxproj | 613 ++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 155733 bytes .../WorkspaceSettings.xcsettings | 22 + .../xcschemes/stlink_shield_10.13.xcscheme | 67 + .../xcschemes/stlink_shield_10.14.xcscheme | 67 + .../xcschemes/stlink_shield_10.15.xcscheme | 67 + .../xcschemes/xcschememanagement.plist | 67 + stlinkv1_macosx_driver/Makefile | 25 +- stlinkv1_macosx_driver/README.md | 67 +- stlinkv1_macosx_driver/osx.tar.gz | Bin 23580 -> 0 bytes 35 files changed, 3403 insertions(+), 108 deletions(-) create mode 100644 stlinkv1_macos_driver/Makefile create mode 100644 stlinkv1_macos_driver/README.md create mode 100644 stlinkv1_macos_driver/install.sh create mode 100644 stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/Info.plist create mode 100644 stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/MacOS/stlink_shield_10.13 create mode 100644 stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/PkgInfo create mode 100644 stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/_CodeSignature/CodeResources create mode 100644 stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/Info.plist create mode 100644 stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/MacOS/stlink_shield_10.14 create mode 100644 stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/PkgInfo create mode 100644 stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/_CodeSignature/CodeResources create mode 100644 stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/Info.plist create mode 100644 stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/MacOS/stlink_shield_10.15 create mode 100644 stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/PkgInfo create mode 100644 stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/_CodeSignature/CodeResources create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/Info.plist create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Cpu86.mode1v3 create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Cpu86.pbxuser create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/contents.xcworkspacedata create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/xcuserdata/vm-user.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.pbxproj create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcuserdata/vm-user.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcuserdata/vm-user.xcuserdatad/WorkspaceSettings.xcsettings create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.13.xcscheme create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.14.xcscheme create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.15.xcscheme create mode 100644 stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcuserdata/vm-user.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 stlinkv1_macosx_driver/osx.tar.gz diff --git a/doc/tutorial.md b/doc/tutorial.md index 694142184..81315dbef 100644 --- a/doc/tutorial.md +++ b/doc/tutorial.md @@ -29,70 +29,7 @@ Within the GUI main window tooltips explain the available user elements. ## Solutions to common problems -### a) STLINK/v1 driver: Issue with Kernel Extension (kext) (macOS 10.11 and later only) -#### Problem: - -st-util fails to detect a STLINK/v1 device: - -``` -st-util -1 -st-util $VERSION-STRING$ -WARN src/sg.c: Failed to find an stlink v1 by VID:PID -ERROR src/sg.c: Could not open stlink device -``` - -#### Solution (clean setup): - -1) Configure System Integrity Protection (SIP) - -The root of this problem is a system security setting introduced by Apple with OS X El Capitan (10.11) in 2015. -The so called System Integrity Protection (SIP) is active per default -and prevents the operating system amongst other things to load unsigned Kernel Extension Modules (kext). -Thus the STLINK/v1 driver supplied with the tools, which installs as a kext, remains not functional, -while SIP is fully activated (as is per default). - -Action needs to be taken here by booting into the recovery mode where a terminal console window needs to be opened. - -For macOS 10.11 - 10.13 it is not recommended to disable SIP completely as with the command `csrutil disable`, -because this leaves the system more vulnerable to common threats. -Instead there is a more adequate and reasonable option implemented by Apple. -Running `csrutil enable --without kext`, allows to load unsigned kernel extensions -while leaving SIP active with all other security features. -Unfortunately this option has been removed in macOS 10.14, which leaves the only option to disable SIP completely. - -So who ever intends to run the STLINK/v1 programmer on macOS please take this into account. - -Further details can be found here: https://forums.developer.apple.com/thread/17452 - -2) Install the ST-Link-v1 driver from the subdirectory `/stlinkv1_macosx_driver` - by referring to the instructions in the README file available there. - -3) Move the $OS_VERSION$.kext file to `/System/Library/Extensions`. - -4) Load the Kernel Extension (kext): `$ sudo kextload -v /System/Library/Extensions/stlink_shield10_x.kext` - -``` -Requesting load of /System/Library/Extensions/stlink_shield10_x.kext. -/System/Library/Extensions/stlink_shield10_x.kext loaded successfully (or already loaded). -``` - -5) Enter the command `$ sudo touch /System/Library/Extensions` - - -7) Verify correct detection of the STLINK/v1 device with the following input: `st-util -1` - -You should then see a similar output like in this example: - -``` -INFO common.c: Loading device parameters.... -INFO common.c: Device connected is: F1 High-density device, id 0x10036414 -INFO common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0x80000 bytes (512 KiB) in pages of 2048 bytes -INFO sg.c: Successfully opened a stlink v1 debugger -INFO gdb-server.c: Chip ID is 00000414, Core ID is 1ba01477. -INFO gdb-server.c: Listening at *:4242... -``` - -### b) Verify if udev rules are set correctly (by Dave Hylands) +### a) Verify if udev rules are set correctly (by Dave Hylands) To investigate, start by plugging your STLINK device into the usb port. Then run `lsusb`. You should see an entry something like the following: diff --git a/stlinkv1_macos_driver/Makefile b/stlinkv1_macos_driver/Makefile new file mode 100644 index 000000000..4b2e6fe68 --- /dev/null +++ b/stlinkv1_macos_driver/Makefile @@ -0,0 +1,57 @@ +# make ... for both stlink v1 and stlink v2 support +## +VPATH=src + +SOURCES_LIB=common.c usb.c sg.c logging.c +OBJS_LIB=$(SOURCES_LIB:.c=.o) +TEST_PROGRAMS=test-flash test-sg test-usb +LDFLAGS=-L. -lstlink -lusb-1.0 + +CFLAGS+=-g +CFLAGS+=-DDEBUG=1 +CFLAGS+=-std=gnu11 +CFLAGS+=-Wall -Wextra + + +LIBRARY=libstlink.a + +all: $(LIBRARY) flash gdbserver $(TEST_PROGRAMS) + +$(LIBRARY): $(OBJS_LIB) + @echo "objs are $(OBJS_LIB)" + $(AR) -cr $@ $^ + @echo "done making library" + + +test_sg: test_sg.o $(LIBRARY) + @echo "building test_sg" + $(CC) test_sg.o $(LDFLAGS) -o $@ + +test_usb: test_usb.o $(LIBRARY) + @echo "building test_usb" + $(CC) test_usb.o $(LDFLAGS) -o $@ + @echo "done linking" + +%.o: %.c + @echo "building $^ into $@" + $(CC) $(CFLAGS) -c $^ -o $@ + @echo "done compiling" + +clean: + rm -rf $(OBJS_LIB) + rm -rf $(LIBRARY) + rm -rf test_usb* + rm -rf test_sg* + $(MAKE) -C flash clean + $(MAKE) -C gdbserver clean + +flash: + $(MAKE) -C flash + +gdbserver: + $(MAKE) -C gdbserver CONFIG_USE_LIBSG="$(CONFIG_USE_LIBSG)" + +macos_stlink_shield: + ./install.sh + +.PHONY: clean all flash gdbserver diff --git a/stlinkv1_macos_driver/README.md b/stlinkv1_macos_driver/README.md new file mode 100644 index 000000000..df0982d44 --- /dev/null +++ b/stlinkv1_macos_driver/README.md @@ -0,0 +1,42 @@ +from: marco.cassinerio@gmail.com + +to: texane@gmail.com + +Hi, + +I managed to get the stlink v1 working under os x and i would like to share the solution so maybe you can add it in your package. The problem is that os x claims the device as scsi and libusb won't be able to connect to it. +I've created what is called a codeless driver which claims the device and has a higher priority then the default apple mass storage driver, so the device can be accessed through libusb. I tested this codeless driver under OS X 10.6.8 and 10.7.2. +I assume it works with any 10.6.x and 10.7.x version as well. Attached to this mail you'll find the osx folder with the source code of the driver, both drivers (for 10.6.x and 10.7.x), an install.sh script and the modified Makefile, i only added a line at the end which invoke the `install.sh`. + +First, unpack the `osx.tar.gz` contents: +```bash +tar xzvf osx.tar.gz +``` + +Then, install the driver using: +```bash +sudo make osx_stlink_shield +``` + +no reboot required. + +P.S. If error `OS X version not supported` occurs. For the latest versions of Mac OS X you may need to change the `osx/install.sh` as follows: +```bash +< ISOSXLION=$(sw_vers -productVersion) +--- +> ISOSXLION=$(sw_vers -productVersion | sed -e 's:.[[:digit:]]*$::') +``` + +### OS X 10.10 Yosemite + +For OS X 10.10 Yosemite you must force the system to load unsigned kernelextensions + +```bash +sudo nvram boot-args="kext-dev-mode=1" +``` + +reboot the system! + +### OS X 10.11 El Capitan + +For OS X 10.11 El Capitan: the Yosemite kext seems to work (tested on 10.11.04). diff --git a/stlinkv1_macos_driver/install.sh b/stlinkv1_macos_driver/install.sh new file mode 100644 index 000000000..03878c63a --- /dev/null +++ b/stlinkv1_macos_driver/install.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +ISMACOS=$(sw_vers -productVersion | sed -e 's:.[[:digit:]]*$::') +case $ISMACOS in +10.13) + KEXT="stlink_shield10_13.kext" + ;; +10.14) + KEXT="stlink_shield10_14.kext" + ;; +10.15) + KEXT="stlink_shield10_15.kext" + ;; +*) + echo "OS X version not supported." + exit 1 + ;; +esac +chown -R root:wheel $KEXT/ +cp -R $KEXT /System/Library/Extensions/stlink_shield.kext +kextload -v /System/Library/Extensions/stlink_shield.kext +touch /System/Library/Extensions diff --git a/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/Info.plist b/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/Info.plist new file mode 100644 index 000000000..fc759b362 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/Info.plist @@ -0,0 +1,82 @@ + + + + + BuildMachineOSBuild + 18G4032 + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.libusb.stlink-shield + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + KEXT + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1.0.0 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 11C504 + DTPlatformVersion + GM + DTSDKBuild + 19B90 + DTSDKName + macosx10.15 + DTXcode + 1130 + DTXcodeBuild + 11C504 + IOKitPersonalities + + DeviceDriver + + CFBundleIdentifier + com.apple.kpi.iokit + IOClass + IOService + IOProviderClass + IOUSBDevice + bcdDevice + 256 + idProduct + 14148 + idVendor + 1155 + + InterfaceDriver + + CFBundleIdentifier + com.apple.kpi.iokit + IOClass + IOService + IOProviderClass + IOUSBInterface + bConfigurationValue + 1 + bInterfaceNumber + 0 + idProduct + 14148 + idVendor + 1155 + + + LSMinimumSystemVersion + 10.13 + OSBundleLibraries + + com.apple.iokit.IOUSBFamily + 1.8 + com.apple.kpi.libkern + 11.2.0 + + + diff --git a/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/MacOS/stlink_shield_10.13 b/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/MacOS/stlink_shield_10.13 new file mode 100644 index 0000000000000000000000000000000000000000..ab3fe644980d97f6494338ebaa3ac6ce2ef54ec0 GIT binary patch literal 33840 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 literal 0 HcmV?d00001 diff --git a/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/PkgInfo b/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/PkgInfo new file mode 100644 index 000000000..bdab95bcc --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/PkgInfo @@ -0,0 +1 @@ +KEXT???? \ No newline at end of file diff --git a/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/_CodeSignature/CodeResources b/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/_CodeSignature/CodeResources new file mode 100644 index 000000000..d5d0fd744 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.13.kext/Contents/_CodeSignature/CodeResources @@ -0,0 +1,115 @@ + + + + + files + + files2 + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/Info.plist b/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/Info.plist new file mode 100644 index 000000000..d43deca2b --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/Info.plist @@ -0,0 +1,82 @@ + + + + + BuildMachineOSBuild + 18G4032 + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.libusb.stlink-shield + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + KEXT + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1.0.0 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 11C504 + DTPlatformVersion + GM + DTSDKBuild + 19B90 + DTSDKName + macosx10.15 + DTXcode + 1130 + DTXcodeBuild + 11C504 + IOKitPersonalities + + DeviceDriver + + CFBundleIdentifier + com.apple.kpi.iokit + IOClass + IOService + IOProviderClass + IOUSBDevice + bcdDevice + 256 + idProduct + 14148 + idVendor + 1155 + + InterfaceDriver + + CFBundleIdentifier + com.apple.kpi.iokit + IOClass + IOService + IOProviderClass + IOUSBInterface + bConfigurationValue + 1 + bInterfaceNumber + 0 + idProduct + 14148 + idVendor + 1155 + + + LSMinimumSystemVersion + 10.14 + OSBundleLibraries + + com.apple.iokit.IOUSBFamily + 1.8 + com.apple.kpi.libkern + 11.2.0 + + + diff --git a/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/MacOS/stlink_shield_10.14 b/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/MacOS/stlink_shield_10.14 new file mode 100644 index 0000000000000000000000000000000000000000..0daee65cbe95ea486adbf7102c8a84d9e39a3d51 GIT binary patch literal 33840 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 B;cWl_ literal 0 HcmV?d00001 diff --git a/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/PkgInfo b/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/PkgInfo new file mode 100644 index 000000000..bdab95bcc --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/PkgInfo @@ -0,0 +1 @@ +KEXT???? \ No newline at end of file diff --git a/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/_CodeSignature/CodeResources b/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/_CodeSignature/CodeResources new file mode 100644 index 000000000..d5d0fd744 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.14.kext/Contents/_CodeSignature/CodeResources @@ -0,0 +1,115 @@ + + + + + files + + files2 + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/Info.plist b/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/Info.plist new file mode 100644 index 000000000..a2a5f8ac2 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/Info.plist @@ -0,0 +1,82 @@ + + + + + BuildMachineOSBuild + 18G4032 + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.libusb.stlink-shield + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + KEXT + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1.0.0 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 11C504 + DTPlatformVersion + GM + DTSDKBuild + 19B90 + DTSDKName + macosx10.15 + DTXcode + 1130 + DTXcodeBuild + 11C504 + IOKitPersonalities + + DeviceDriver + + CFBundleIdentifier + com.apple.kpi.iokit + IOClass + IOService + IOProviderClass + IOUSBDevice + bcdDevice + 256 + idProduct + 14148 + idVendor + 1155 + + InterfaceDriver + + CFBundleIdentifier + com.apple.kpi.iokit + IOClass + IOService + IOProviderClass + IOUSBInterface + bConfigurationValue + 1 + bInterfaceNumber + 0 + idProduct + 14148 + idVendor + 1155 + + + LSMinimumSystemVersion + 10.15 + OSBundleLibraries + + com.apple.iokit.IOUSBFamily + 1.8 + com.apple.kpi.libkern + 11.2.0 + + + diff --git a/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/MacOS/stlink_shield_10.15 b/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/MacOS/stlink_shield_10.15 new file mode 100644 index 0000000000000000000000000000000000000000..209ad9f970b16d6ccd06b41bac145f9bee939199 GIT binary patch literal 33840 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 literal 0 HcmV?d00001 diff --git a/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/PkgInfo b/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/PkgInfo new file mode 100644 index 000000000..bdab95bcc --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/PkgInfo @@ -0,0 +1 @@ +KEXT???? \ No newline at end of file diff --git a/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/_CodeSignature/CodeResources b/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/_CodeSignature/CodeResources new file mode 100644 index 000000000..d5d0fd744 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_10.15.kext/Contents/_CodeSignature/CodeResources @@ -0,0 +1,115 @@ + + + + + files + + files2 + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/Info.plist b/stlinkv1_macos_driver/stlink_shield_xcode/Info.plist new file mode 100644 index 000000000..b0a0228d8 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/Info.plist @@ -0,0 +1,60 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + KEXT + CFBundleSignature + ???? + CFBundleVersion + 1.0.0 + IOKitPersonalities + + DeviceDriver + + CFBundleIdentifier + com.apple.kpi.iokit + IOClass + IOService + IOProviderClass + IOUSBDevice + bcdDevice + 256 + idProduct + 14148 + idVendor + 1155 + + InterfaceDriver + + CFBundleIdentifier + com.apple.kpi.iokit + IOClass + IOService + IOProviderClass + IOUSBInterface + bConfigurationValue + 1 + bInterfaceNumber + 0 + idProduct + 14148 + idVendor + 1155 + + + OSBundleLibraries + + com.apple.iokit.IOUSBFamily + 1.8 + com.apple.kpi.libkern + 11.2.0 + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Cpu86.mode1v3 b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Cpu86.mode1v3 new file mode 100644 index 000000000..4edd6bfc1 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Cpu86.mode1v3 @@ -0,0 +1,1395 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 8CDE4538149B60410065D609 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + + XCObserverAutoDisconnectKey + + XCObserverDefintionKey + + PBXStatusErrorsKey + 0 + + XCObserverFactoryKey + XCPerspectivesSpecificationIdentifier + XCObserverGUIDKey + XCObserverProjectIdentifier + XCObserverNotificationKey + PBXStatusBuildStateMessageNotification + XCObserverTargetKey + XCMainBuildResultsModuleGUID + XCObserverTriggerKey + awakenModuleWithObserver: + XCObserverValidationKey + + PBXStatusErrorsKey + 2 + + + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + buildOrClean + com.apple.ide.PBXToolbarStopButton + get-info + toggle-editor + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 089C166AFE841209C02AAC07 + 089C167CFE841241C02AAC07 + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 7 + 6 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 711}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 729}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 0 108 1440 770 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + stlink_shield10_7.plist + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + stlink_shield10_7.plist + _historyCapacity + 0 + bookmark + 8CD33C43149BB9060033D618 + history + + 8CD33C22149BB76A0033D618 + 8CD33C32149BB8580033D618 + 8CD33C37149BB8CA0033D618 + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1232, 524}} + RubberWindowFrame + 0 108 1440 770 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 524pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 529}, {1232, 200}} + RubberWindowFrame + 0 108 1440 770 0 0 1440 878 + + Module + XCDetailModule + Proportion + 200pt + + + Proportion + 1232pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 8CD33C1F149BA5FB0033D618 + 1CE0B1FE06471DED0097A5F4 + 8CD33C20149BA5FB0033D618 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 345749766.86004502 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 8CDE4539149B60410065D609 + /Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield.xcodeproj + + WindowString + 0 108 1440 770 0 0 1440 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 42 332 500 500 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1012 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 42 332 500 500 0 0 1440 878 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 8CDE4539149B60410065D609 + 8CD33C21149BA5FB0033D618 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 42 332 500 500 0 0 1440 878 + WindowToolGUID + 8CDE4539149B60410065D609 + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Cpu86.pbxuser b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Cpu86.pbxuser new file mode 100644 index 000000000..3f1cbd416 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Cpu86.pbxuser @@ -0,0 +1,243 @@ +// !$*UTF8*$! +{ + 089C1669FE841209C02AAC07 /* Project object */ = { + activeBuildConfigurationName = Release; + activeTarget = 8CD33C26149BB80D0033D618 /* stlink_shield 10.7 */; + addToTargets = ( + EE19EF3907B2D66E0083E1AA /* stlink_shield */, + ); + codeSenseManager = 8CDE453C149B60410065D609 /* Code sense */; + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 993, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 953, + 60, + 20, + 48, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 345744879; + PBXWorkspaceStateSaveDate = 345744879; + }; + perUserProjectItems = { + 8CD33C0F149B992E0033D618 = 8CD33C0F149B992E0033D618 /* PBXTextBookmark */; + 8CD33C10149B992E0033D618 = 8CD33C10149B992E0033D618 /* PlistBookmark */; + 8CD33C11149B992E0033D618 = 8CD33C11149B992E0033D618 /* PlistBookmark */; + 8CD33C1E149BA5FB0033D618 /* PlistBookmark */ = 8CD33C1E149BA5FB0033D618 /* PlistBookmark */; + 8CD33C22149BB76A0033D618 /* PlistBookmark */ = 8CD33C22149BB76A0033D618 /* PlistBookmark */; + 8CD33C23149BB76A0033D618 /* PBXTextBookmark */ = 8CD33C23149BB76A0033D618 /* PBXTextBookmark */; + 8CD33C24149BB76A0033D618 /* PBXTextBookmark */ = 8CD33C24149BB76A0033D618 /* PBXTextBookmark */; + 8CD33C32149BB8580033D618 /* PBXTextBookmark */ = 8CD33C32149BB8580033D618 /* PBXTextBookmark */; + 8CD33C33149BB8580033D618 /* PlistBookmark */ = 8CD33C33149BB8580033D618 /* PlistBookmark */; + 8CD33C34149BB8580033D618 /* PlistBookmark */ = 8CD33C34149BB8580033D618 /* PlistBookmark */; + 8CD33C37149BB8CA0033D618 /* PlistBookmark */ = 8CD33C37149BB8CA0033D618 /* PlistBookmark */; + 8CD33C38149BB8CA0033D618 /* PlistBookmark */ = 8CD33C38149BB8CA0033D618 /* PlistBookmark */; + 8CD33C43149BB9060033D618 /* PlistBookmark */ = 8CD33C43149BB9060033D618 /* PlistBookmark */; + }; + sourceControlManager = 8CDE453B149B60410065D609 /* Source Control */; + userBuildSettings = { + }; + }; + 089C167EFE841241C02AAC07 /* English */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1171, 507}}"; + sepNavSelRange = "{77, 0}"; + sepNavVisRange = "{0, 77}"; + }; + }; + 8CD33C0F149B992E0033D618 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 089C167EFE841241C02AAC07 /* English */; + name = "InfoPlist.strings: 4"; + rLen = 0; + rLoc = 77; + rType = 0; + vrLen = 77; + vrLoc = 0; + }; + 8CD33C10149B992E0033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = EE19EF4007B2D66E0083E1AA /* stlink_shield.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield.plist"; + rLen = 0; + rLoc = 9223372036854775808; + }; + 8CD33C11149B992E0033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = EE19EF4007B2D66E0083E1AA /* stlink_shield.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield.plist"; + rLen = 0; + rLoc = 9223372036854775808; + }; + 8CD33C1E149BA5FB0033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = EE19EF4007B2D66E0083E1AA /* stlink_shield.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield.plist"; + rLen = 0; + rLoc = 9223372036854775807; + }; + 8CD33C22149BB76A0033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = EE19EF4007B2D66E0083E1AA /* stlink_shield.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield.plist"; + rLen = 0; + rLoc = 9223372036854775807; + }; + 8CD33C23149BB76A0033D618 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 089C167EFE841241C02AAC07 /* English */; + name = "InfoPlist.strings: 4"; + rLen = 0; + rLoc = 77; + rType = 0; + vrLen = 77; + vrLoc = 0; + }; + 8CD33C24149BB76A0033D618 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 089C167EFE841241C02AAC07 /* English */; + name = "InfoPlist.strings: 4"; + rLen = 0; + rLoc = 77; + rType = 0; + vrLen = 77; + vrLoc = 0; + }; + 8CD33C26149BB80D0033D618 /* stlink_shield 10.7 */ = { + activeExec = 0; + }; + 8CD33C32149BB8580033D618 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 089C167EFE841241C02AAC07 /* English */; + name = "InfoPlist.strings: 4"; + rLen = 0; + rLoc = 77; + rType = 0; + vrLen = 77; + vrLoc = 0; + }; + 8CD33C33149BB8580033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8CD33C31149BB80D0033D618 /* stlink_shield10_7.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield10_7.plist"; + rLen = 0; + rLoc = 9223372036854775807; + }; + 8CD33C34149BB8580033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8CD33C31149BB80D0033D618 /* stlink_shield10_7.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield10_7.plist"; + rLen = 0; + rLoc = 9223372036854775807; + }; + 8CD33C37149BB8CA0033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8CD33C31149BB80D0033D618 /* stlink_shield10_7.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield10_7.plist"; + rLen = 0; + rLoc = 9223372036854775807; + }; + 8CD33C38149BB8CA0033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8CD33C31149BB80D0033D618 /* stlink_shield10_7.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield10_7.plist"; + rLen = 0; + rLoc = 9223372036854775807; + }; + 8CD33C43149BB9060033D618 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8CD33C31149BB80D0033D618 /* stlink_shield10_7.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/Cpu86/Desktop/STLINK fake driver/stlink_shield/stlink_shield10_7.plist"; + rLen = 0; + rLoc = 9223372036854775807; + }; + 8CDE453B149B60410065D609 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 8CDE453C149B60410065D609 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + EE19EF3907B2D66E0083E1AA /* stlink_shield */ = { + activeExec = 0; + }; +} diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/contents.xcworkspacedata b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..24ab27b4c --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/xcuserdata/vm-user.xcuserdatad/UserInterfaceState.xcuserstate b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/Untitled.xcworkspace/xcuserdata/vm-user.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..a32f81202988e22eaceccfcbdaebdcce7a40959d GIT binary patch literal 71116 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

r$IgOl7&LC%!v&h-x9C9u>kDN~~AQzI0$i?Im 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 hU-`e + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..f9b0d7c5e --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcuserdata/vm-user.xcuserdatad/UserInterfaceState.xcuserstate b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcuserdata/vm-user.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..c1d057445d419f62cb10d23b3c1e7b66199bd6ad GIT binary patch literal 155733 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 Pvf|f2|NsB6ar=J&LWBcP literal 0 HcmV?d00001 diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcuserdata/vm-user.xcuserdatad/WorkspaceSettings.xcsettings b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcuserdata/vm-user.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..e097e4fe6 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/project.xcworkspace/xcuserdata/vm-user.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,22 @@ + + + + + BuildLocationStyle + UseAppPreferences + CustomBuildIntermediatesPath + Build/Intermediates.noindex + CustomBuildLocationType + RelativeToDerivedData + CustomBuildProductsPath + Build/Products + DerivedDataLocationStyle + Default + IssueFilterStyle + ShowActiveSchemeOnly + LiveSourceIssuesEnabled + + SharedBuildFolderName + Build + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.13.xcscheme b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.13.xcscheme new file mode 100644 index 000000000..8b6d49626 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.13.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.14.xcscheme b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.14.xcscheme new file mode 100644 index 000000000..d20a87ef1 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.14.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.15.xcscheme b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.15.xcscheme new file mode 100644 index 000000000..ad028a073 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcshareddata/xcschemes/stlink_shield_10.15.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcuserdata/vm-user.xcuserdatad/xcschemes/xcschememanagement.plist b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcuserdata/vm-user.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..d23112ec9 --- /dev/null +++ b/stlinkv1_macos_driver/stlink_shield_xcode/stlink_shield.xcodeproj/xcuserdata/vm-user.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,67 @@ + + + + + SchemeUserState + + stlink_shield 10.7.xcscheme_^#shared#^_ + + orderHint + 2 + + stlink_shield copy copy.xcscheme_^#shared#^_ + + orderHint + 3 + + stlink_shield copy.xcscheme_^#shared#^_ + + orderHint + 2 + + stlink_shield.xcscheme_^#shared#^_ + + orderHint + 1 + + stlink_shield_10.13.xcscheme_^#shared#^_ + + orderHint + 0 + + stlink_shield_10.14 copy.xcscheme_^#shared#^_ + + orderHint + 4 + + stlink_shield_10.14.xcscheme_^#shared#^_ + + orderHint + 1 + + stlink_shield_10.15.xcscheme_^#shared#^_ + + orderHint + 2 + + + SuppressBuildableAutocreation + + 8F9084E724786F0B009109AD + + primary + + + 8F9084F324786F0F009109AD + + primary + + + 8F9084FF24786F39009109AD + + primary + + + + + diff --git a/stlinkv1_macosx_driver/Makefile b/stlinkv1_macosx_driver/Makefile index 9947ff672..e6ba6309b 100644 --- a/stlinkv1_macosx_driver/Makefile +++ b/stlinkv1_macosx_driver/Makefile @@ -1,15 +1,17 @@ -# make ... for both stlink v1 and stlink v2 support -## +### +# Makefile for STlink-v1 support +### + VPATH=src -SOURCES_LIB=stlink-common.c stlink-usb.c stlink-sg.c uglylogging.c +SOURCES_LIB=common.c usb.c sg.c logging.c OBJS_LIB=$(SOURCES_LIB:.c=.o) -TEST_PROGRAMS=test_usb test_sg +TEST_PROGRAMS=test-flash test-sg test-usb LDFLAGS=-L. -lstlink -lusb-1.0 CFLAGS+=-g CFLAGS+=-DDEBUG=1 -CFLAGS+=-std=gnu99 +CFLAGS+=-std=gnu11 CFLAGS+=-Wall -Wextra @@ -20,8 +22,8 @@ all: $(LIBRARY) flash gdbserver $(TEST_PROGRAMS) $(LIBRARY): $(OBJS_LIB) @echo "objs are $(OBJS_LIB)" $(AR) -cr $@ $^ - @echo "done making library" - + @echo "Compilation of library completed." + test_sg: test_sg.o $(LIBRARY) @echo "building test_sg" @@ -40,18 +42,17 @@ test_usb: test_usb.o $(LIBRARY) clean: rm -rf $(OBJS_LIB) rm -rf $(LIBRARY) - rm -rf test_usb* - rm -rf test_sg* + rm -rf test-flash* test-sg* test-usb* $(MAKE) -C flash clean $(MAKE) -C gdbserver clean - + flash: $(MAKE) -C flash gdbserver: $(MAKE) -C gdbserver CONFIG_USE_LIBSG="$(CONFIG_USE_LIBSG)" -osx_stlink_shield: - ./osx/install.sh +macos_stlink_shield: + ./install.sh .PHONY: clean all flash gdbserver diff --git a/stlinkv1_macosx_driver/README.md b/stlinkv1_macosx_driver/README.md index b2a68442c..ca4a3da30 100644 --- a/stlinkv1_macosx_driver/README.md +++ b/stlinkv1_macosx_driver/README.md @@ -1,47 +1,50 @@ -from: marco.cassinerio@gmail.com +### +# Installation instructions for STLINK/v1 driver +### -to: texane@gmail.com +When connecting to the STLINK/v1 on macOS via USB, the system claims the programmer as a SCSI device. Thus libusb is not able to initialise and establish a connection to it. To solve this issue Marco Cassinerio (marco.cassinerio@gmail.com) has created a so called "codeless driver" which claims the device. It is of higher priority then the default apple mass storage driver, what allows the device to be accessed through libusb. -Hi, +To make use of this alternative approach one needs to go through the following steps: -i managed to get the stlink v1 working under os x and i would like to share the solution so maybe you can add it in your package. -The problem is that os x claims the device as scsi and libusb won't be able to connect to it. -I've created what is called a codeless driver which claims the device and has a higher priority then the default apple mass storage driver, so the device can be accessed through libusb. +1) Install the macOS Kernel Extension (kext): + - Open a terminal console and navigate to this subdirectory `/stlinkv1_macos_driver` + - Use the command ```sudo sh ./install.sh``` to install the appropiate kext for your system version. -I tested this codeless driver under OS X 10.6.8 and 10.7.2. -I assume it works with any 10.6.x and 10.7.x version as well. +2) Install the ST-Link-v1 driver from this subdirectory `/stlinkv1_macos_driver` by executing: ```sudo make osx_stlink_shield```. This should result in the following output: -Attached to this mail you'll find the osx folder with the source code of the driver, both drivers (for 10.6.x and 10.7.x), an install.sh script and the modified Makefile, i only added a line at the end which invoke the `install.sh`. - -First, unpack the `osx.tar.gz` contents: -```bash -tar xzvf osx.tar.gz ``` - -Then, install the driver using: -```bash -sudo make osx_stlink_shield +Requesting load of /System/Library/Extensions/stlink_shield.kext. +/System/Library/Extensions/stlink_shield.kext loaded successfully (or already loaded). ``` -no reboot required. - -P.S. If error `OS X version not supported` occurs. For the latest versions of Mac OS X you may need to change the `osx/install.sh` as follows: -```bash -< ISOSXLION=$(sw_vers -productVersion) ---- -> ISOSXLION=$(sw_vers -productVersion | sed -e 's:.[[:digit:]]*$::') -``` +3) Configure System Integrity Protection (SIP) -### OS X 10.10 Yosemite +The above system security setting introduced by Apple with OS X El Capitan (10.11) in 2015 is active per default +and prevents the operating system amongst other things to load unsigned Kernel Extension Modules (kext). +Thus the STLINK/v1 driver supplied with the tools, which installs as a kext, remains not functional, +until SIP is fully deactivated. -For OS X 10.10 Yosemite you must force the system to load unsigned kernelextensions +Without SIP-deactivation, st-util fails to detect a STLINK/v1 device: -```bash -sudo nvram boot-args="kext-dev-mode=1" ``` +st-util -1 +st-util $VERSION-STRING$ +WARN src/sg.c: Failed to find an stlink v1 by VID:PID +ERROR src/sg.c: Could not open stlink device +``` + +In order to deactivate SIP, boot into the recovery mode and run ```csrutil disable``` in a terminal console window. -reboot the system! +4) Reboot the system. -### OS X 10.11 El Capitan +5) Verify correct detection of the STLINK/v1 device with the following input: `st-util -1` +You should then see a similar output like in this example: -For OS X 10.11 El Capitan: the Yosemite kext seems to work (tested on 10.11.04). +``` +INFO common.c: Loading device parameters.... +INFO common.c: Device connected is: F1 High-density device, id 0x10036414 +INFO common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0x80000 bytes (512 KiB) in pages of 2048 bytes +INFO sg.c: Successfully opened a stlink v1 debugger +INFO gdb-server.c: Chip ID is 00000414, Core ID is 1ba01477. +INFO gdb-server.c: Listening at *:4242... +``` diff --git a/stlinkv1_macosx_driver/osx.tar.gz b/stlinkv1_macosx_driver/osx.tar.gz deleted file mode 100644 index 57bc314668c66f849b8fdcd50a5e38a430cac624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23580 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

    j8Y(F{;Oc1p&o2`rjEgTlTet!n|}EG9(XKHIrH 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 M^A0x(5eCYC0W6&Nj{pDw