You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
5.3 KiB

  1. # Contents
  2. * [Git Basics](#git-basics)
  3. * [Update a Feature Branch](#update-a-development-branch)
  4. * [Delete Branch Locally and Remotely](#delete-branch-locally-and-remotely)
  5. * [Merge TEST branch into DEV branch](#merge-test-branch-into-dev-branch)
  6. * [STM32F103C8T6 Setup](#STM32F103C8T6-setup)
  7. * [Bootloader](#bootloader)
  8. * [Flashing QMK](#flashing-qmk)
  9. ---
  10. ## Git Basics
  11. ### Update a Development Branch
  12. This is how to update a working branch with upstream changes.
  13. First we'll update your local master branch. Go to your local project and check out the branch you want to merge into (your local master branch)
  14. ```bash
  15. $ git checkout master
  16. ```
  17. Fetch the remote, bringing the branches and their commits from the remote repository.
  18. You can use the -p, --prune option to delete any remote-tracking references that no longer exist in the remote. Commits to master will be stored in a local branch, remotes/origin/master
  19. ```bash
  20. $ git fetch -p origin
  21. ```
  22. Merge the changes from origin/master into your local master branch. This brings your master branch in sync with the remote repository, without losing your local changes. If your local branch didn't have any unique commits, Git will instead perform a "fast-forward".
  23. ```bash
  24. $ git merge origin/master
  25. ```
  26. Checkout the branch you want to merge into
  27. ```bash
  28. $ git checkout <feature-branch>
  29. ```
  30. Merge your (now updated) master branch into your feature branch to update it with the latest changes from your team.
  31. ```bash
  32. $ git merge master
  33. ```
  34. This will open your git-configured text editor. Edit the message as desired, save, and exit the editor.
  35. The above steps only update your local feature branch. To update it on GitHub, push your changes.
  36. ```bash
  37. $ git push origin <feature-branch>
  38. ```
  39. ### Delete Branch Locally and Remotely
  40. Executive Summary
  41. ```bash
  42. $ git push --delete <remote_name> <branch_name>
  43. $ git branch -d <branch_name>
  44. ```
  45. Note that in most cases the remote name is origin.
  46. Delete Local Branch
  47. To delete the local branch use one of the following:
  48. ```bash
  49. $ git branch -d branch_name
  50. $ git branch -D branch_name
  51. ```
  52. Note: The -d option is an alias for --delete, which only deletes the branch if it has already been fully merged in its upstream branch. You could also use -D, which is an alias for --delete --force, which deletes the branch "irrespective of its merged status." [Source: man git-branch]
  53. Delete Remote Branch [Updated on 8-Sep-2017]
  54. As of Git v1.7.0, you can delete a remote branch using
  55. ```bash
  56. $ git push <remote_name> --delete <branch_name>
  57. ```
  58. which might be easier to remember than
  59. ```bash
  60. $ git push <remote_name> :<branch_name>
  61. ```
  62. which was added in Git v1.5.0 "to delete a remote branch or a tag."
  63. Starting on Git v2.8.0 you can also use `git push` with the `-d` option as an alias for `--delete`.
  64. Therefore, the version of Git you have installed will dictate whether you need to use the easier or harder syntax.
  65. ### Merge TEST branch into DEV branch
  66. Executive Summary
  67. ```bash
  68. $ git checkout DEV
  69. $ git merge TEST
  70. $ git push <remote_name> DEV
  71. $ git branch -d TEST
  72. $ git push <remote_name> :TEST
  73. ```
  74. Note that in most cases the remote name is origin.
  75. The above code will merge, push to remote, and delete both the local and remote TEST branches
  76. ---
  77. ## STM32F103C8T6 Setup
  78. Cheap "Blue/Black Pills" typically do not come with a bootloader installed. The Black Pill uses [generic_boot20_pb12.bin](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/generic_boot20_pb12.bin). The Blue Pill uses [generic_boot20_pc13.bin](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/generic_boot20_pc13.bin).
  79. The following instructions have been adapted from [here](http://wiki.stm32duino.com/index.php?title=Burning_the_bootloader).
  80. ### Bootloader
  81. Flashing a bootloader on to a Black Pill can be done via a USB to Serial converter (e.g. CP2102). This process should be roughly the same for all F103 boards.
  82. 1. Download the correct bootloader binary
  83. 2. Set the 'boot 0' pin/jumper high, and 'boot 1' low
  84. B0+ to center pin
  85. B1- to center pin
  86. 3. Connect the board to the PC using a USB to serial converter
  87. RX to PA9
  88. TX to PA10
  89. GND to Ground
  90. 3.3V to 3.3 Volts
  91. 4. Download and install __Flash Loader Demonstrator__ from [here](http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html)
  92. 5. Use __Flash Loader Demonstrator__ to flash the bootloader
  93. Ensure the correct COM port is selected. Leave other options with their default values/selections.
  94. Use the "Download to Device" option, with "Erase necessary pages" selected
  95. 6. After a successful flash, set 'boot 0' pin/jumper low
  96. B0- to center pin
  97. B1- to center pin (no change)
  98. ### Flashing QMK
  99. As of April 2019, the `:dfu-util` target doesn't work on a \*Pill. You will need to use dfu-util directly.
  100. 1. Use QMK to build your `.bin`
  101. 2. Run `dfu-util.exe -d 1eaf:0003 -a 2 -D YOUR_FIRMWARE.bin"`
  102. If this is the first QMK flash on the \*Pill, you will need to synchronize your Reset Button-push with starting the command. By default, the \*Pill only stays in bootloader mode for about 3 seconds before returning to normal operation.
  103. See [this page](https://docs.qmk.fm/#/faq_build?id=unknown-device-for-dfu-bootloader) if Windows can't see anything to upload to.
  104. ---