-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathContribute.pg
79 lines (70 loc) · 10.6 KB
/
Contribute.pg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
flags: 0101010101010
blocks: <h2>Hardware</h2><p>We are using <a class="url http outside" href="http://www.kicad-pcb.org">Kicad</a> for schematic and pcb development. You can find the source in our <a class="url http outside" href="https://github.com/ProgArm/ProgArm-Hardware">repository</a> on GitHub.<br />Just open <code>ProgArm.pro</code> file with Kicad.<br />If you want to submit your contribution, please set up these <a class="url http outside" href="http://git-scm.com/book/en/Customizing-Git-Git-Attributes">filters</a> before commiting to this repository:<br /></p><div class="highlight"><pre><span style="color: #d0d0d0">git</span> <span style="color: #d0d0d0">config</span> <span style="color: #d0d0d0">--global</span> <span style="color: #d0d0d0">filter.cleansch.clean</span> <span style="color: #ed9d13">"sed 's/^Date.*$/Date \"\"/'"</span>
<span style="color: #d0d0d0">git</span> <span style="color: #d0d0d0">config</span> <span style="color: #d0d0d0">--global</span> <span style="color: #d0d0d0">filter.cleanlib.clean</span> <span style="color: #ed9d13">"sed 's/^\(EESchema-LIBRARY Version [^ \\t]*\).*$/\1/'"</span>
<span style="color: #d0d0d0">git</span> <span style="color: #d0d0d0">config</span> <span style="color: #d0d0d0">--global</span> <span style="color: #d0d0d0">filter.cleanpcb.clean</span> <span style="color: #ed9d13">"sed 's/\(host pcbnew \"\)[^\"]*/\1/'"</span>
<span style="color: #d0d0d0">git</span> <span style="color: #d0d0d0">config</span> <span style="color: #d0d0d0">--global</span> <span style="color: #d0d0d0">filter.cleanpro.clean</span> <span style="color: #ed9d13">"sed 's/^\(update=\).*$/\1/'"</span>
</pre></div>
<h2>Firmware</h2><p>(TODO write about setting up a toolchain)</p><p>The easiest way is to use eclipse:<br /></p><ul><li>Create a new C++ project (<em>File/New/C++ Project</em>)</li><li>Choose <strong>STM32F10x C/C++ Project</strong><br /><a class="image inter File" href="https://files.progarm.org/2015-02-27-022327_632x540_scrot.png"><img class="upload" title="File:2015-02-27-022327 632x540 scrot.png" src="https://files.progarm.org/2015-02-27-022327_632x540_scrot.png" alt="File:2015-02-27-022327 632x540 scrot.png" /></a></li><li>Hit <em>Next</em></li><li>Choose STM32f10x Medium Density, Flash Size 128 KB, RAM size 20 KB, Content: Empty. Leave default values in other settings.<br /><a class="image inter File" href="https://files.progarm.org/2015-02-27-014355_649x672_scrot.png"><img class="upload" title="File:2015-02-27-014355 649x672 scrot.png" src="https://files.progarm.org/2015-02-27-014355_649x672_scrot.png" alt="File:2015-02-27-014355 649x672 scrot.png" /></a></li><li>Click <em>Next</em>, click <em>Next</em> again.</li><li>Specify toolchain path (it could be different on your system)<br /><a class="image inter File" href="https://files.progarm.org/2015-02-27-022548_655x260_scrot.png"><img class="upload" title="File:2015-02-27-022548 655x260 scrot.png" src="https://files.progarm.org/2015-02-27-022548_655x260_scrot.png" alt="File:2015-02-27-022548 655x260 scrot.png" /></a></li><li>Click <em>Finish</em></li></ul><p>(TODO: perhaps there is no reason to set things up because the settings are already in the repo, clicking just Next-Next-Next should work)</p><p>Okay, now you have an empty project with a simple <em>main.cpp</em>. Now it's time to get ProgArm firmware sources:<br /></p><ul><li>Get firmware source. There are many ways to do that<ul><li>Run <code>git clone <a class="url http" href="https://github.com/ProgArm/ProgArm-Firmware.git">https://github.com/ProgArm/ProgArm-Firmware.git</a></code> in a terminal</li><li>Use any git gui to do the same</li><li>Or just download a zip from <a class="url http" href="https://github.com/ProgArm/ProgArm-Firmware/archive/master.zip">https://github.com/ProgArm/ProgArm-Firmware/archive/master.zip</a></li></ul></li><li>Now take the contents of the repo and slam it into the eclipse project. <strong>Don't forget</strong> .git and .gitignore (most likely they are hidden)</li><li>Hit Ctrl+b (<em>Project/Build All</em>) to build.</li><li>You should see errors such as <code>undefined reference to `BKP_ClearFlag'</code> or similar. That's okay, most library files are excluded from the build by default.</li><li>Right click on your project, click <em>Properties</em>, go to C/C++ General/Paths and Symbols/Source Location<br /><a class="image inter File" href="https://files.progarm.org/2015-02-27-024821_787x457_scrot.png"><img class="upload" title="File:2015-02-27-024821 787x457 scrot.png" src="https://files.progarm.org/2015-02-27-024821_787x457_scrot.png" alt="File:2015-02-27-024821 787x457 scrot.png" /></a></li><li>Select a filter and click <strong>Edit Filter</strong></li><li>In the appeared window select all (Ctrl+a) and <strong>Remove</strong>.</li><li>Click <strong>OK</strong></li><li>Now hit Ctrl+b (<em>Project/Build All</em>) to build again. It should build without any errors. If not, then check your toolchain.</li></ul><p>(TODO write about build configurations, hex/bin files, SWD etc)</p><h2>Client</h2><p>If you wrote an extension for [[Perl Client]], feel free to add it to [[Perl Client Modules]] list. It would be nice if you made a pull request with your module, however you can simply paste it to this wiki if you are not familiar with <a class="url http outside" href="http://git-scm.com/book/en/v2/Getting-Started-Git-Basics">git</a> yet.</p><p>If you want to contribute some changes directly to the core, we will happily accept your pull request. See <a class="url http outside" href="https://github.com/ProgArm/ProgArm-Client">Perl Client Repo</a>.</p><h2>Creating your own client</h2><p>Just create your own repository! You can find more information on [[Writing Clients]]. Don't forget to add it to [[Clients]] page.</p>
diff-minor: <p><strong>Changed:</strong></p>
<div class="old"><p>< <strong class="changes">http://files.progarm.org/</strong>2015-02-27-022327_632x540_scrot.png</p></div><p><strong>to</strong></p>
<div class="new"><p>> <strong class="changes">[[image:File:</strong>2015-02-27-022327_632x540_scrot.png<strong class="changes">]]</strong></p></div><p><strong>Changed:</strong></p>
<div class="old"><p>< <strong class="changes">http://files.progarm.org/</strong>2015-02-27-014355_649x672_scrot.png</p></div><p><strong>to</strong></p>
<div class="new"><p>> <strong class="changes">[[image:File:</strong>2015-02-27-014355_649x672_scrot.png<strong class="changes">]]</strong></p></div><p><strong>Changed:</strong></p>
<div class="old"><p>< <strong class="changes">http://files.progarm.org/</strong>2015-02-27-022548_655x260_scrot.png</p></div><p><strong>to</strong></p>
<div class="new"><p>> <strong class="changes">[[image:File:</strong>2015-02-27-022548_655x260_scrot.png<strong class="changes">]]</strong></p></div><p><strong>Changed:</strong></p>
<div class="old"><p>< <strong class="changes">http://files.progarm.org/</strong>2015-02-27-024821_787x457_scrot.png</p></div><p><strong>to</strong></p>
<div class="new"><p>> <strong class="changes">[[image:File:</strong>2015-02-27-024821_787x457_scrot.png<strong class="changes">]]</strong></p></div>
ts: 1428972551
minor:
host: 82.131.49.192
username: AlexDaniel
revision: 8
diff-major: 1
summary: HTTPS
languages:
text: ==Hardware
We are using [[http://www.kicad-pcb.org Kicad]] for schematic and pcb development. You can find the source in our [[https://github.com/ProgArm/ProgArm-Hardware repository]] on GitHub.
Just open {{{ProgArm.pro}}} file with Kicad.
If you want to submit your contribution, please set up these [[http://git-scm.com/book/en/Customizing-Git-Git-Attributes filters]] before commiting to this repository:
{{{
git config --global filter.cleansch.clean "sed 's/^Date.*$/Date \"\"/'"
git config --global filter.cleanlib.clean "sed 's/^\(EESchema-LIBRARY Version [^ \\t]*\).*$/\1/'"
git config --global filter.cleanpcb.clean "sed 's/\(host pcbnew \"\)[^\"]*/\1/'"
git config --global filter.cleanpro.clean "sed 's/^\(update=\).*$/\1/'"
}}}
==Firmware
(TODO write about setting up a toolchain)
The easiest way is to use eclipse:
* Create a new C++ project (//File/New/C++ Project//)
* Choose **STM32F10x C/C++ Project**
[[image:File:2015-02-27-022327_632x540_scrot.png]]
* Hit //Next//
* Choose STM32f10x Medium Density, Flash Size 128 KB, RAM size 20 KB, Content: Empty. Leave default values in other settings.
[[image:File:2015-02-27-014355_649x672_scrot.png]]
* Click //Next//, click //Next// again.
* Specify toolchain path (it could be different on your system)
[[image:File:2015-02-27-022548_655x260_scrot.png]]
* Click //Finish//
(TODO: perhaps there is no reason to set things up because the settings are already in the repo, clicking just Next-Next-Next should work)
Okay, now you have an empty project with a simple //main.cpp//. Now it's time to get ProgArm firmware sources:
* Get firmware source. There are many ways to do that
** Run ##git clone https://github.com/ProgArm/ProgArm-Firmware.git## in a terminal
** Use any git gui to do the same
** Or just download a zip from https://github.com/ProgArm/ProgArm-Firmware/archive/master.zip
* Now take the contents of the repo and slam it into the eclipse project. **Don't forget** .git and .gitignore (most likely they are hidden)
* Hit Ctrl+b (//Project/Build All//) to build.
* You should see errors such as {{{undefined reference to `BKP_ClearFlag'}}} or similar. That's okay, most library files are excluded from the build by default.
* Right click on your project, click //Properties//, go to C/C++ General/Paths and Symbols/Source Location
[[image:File:2015-02-27-024821_787x457_scrot.png]]
* Select a filter and click **Edit Filter**
* In the appeared window select all (Ctrl+a) and **Remove**.
* Click **OK**
* Now hit Ctrl+b (//Project/Build All//) to build again. It should build without any errors. If not, then check your toolchain.
(TODO write about build configurations, hex/bin files, SWD etc)
==Client
If you wrote an extension for [[Perl Client]], feel free to add it to [[Perl Client Modules]] list. It would be nice if you made a pull request with your module, however you can simply paste it to this wiki if you are not familiar with [[http://git-scm.com/book/en/v2/Getting-Started-Git-Basics git]] yet.
If you want to contribute some changes directly to the core, we will happily accept your pull request. See [[https://github.com/ProgArm/ProgArm-Client Perl Client Repo]].
==Creating your own client
Just create your own repository! You can find more information on [[Writing Clients]]. Don't forget to add it to [[Clients]] page.
lastmajor: 8
keep-ts: 1428972551