PIO Unified Debugger

This commit is contained in:
Ivan Kravets
2017-04-29 01:42:23 +03:00
parent d55f28e3d7
commit 13cd09d161
4 changed files with 93 additions and 2 deletions

View File

@ -7,6 +7,14 @@ PlatformIO 3.0
3.4.0 (2017-??-??)
~~~~~~~~~~~~~~~~~~
* `PIO Unified Debugger <http://docs.platformio.org/page/plus/debugging.html>`__
- 100+ boards
- Multiple architectures and development platforms
- Zero Configuration
- Compatibility with the popular IDEs: Eclipse, Atom, VSCode, Sublime Text, etc
- Windows, MacOS, Linux (+ARMv6-8)
* Multi-line support for the different options in `Project Configuration File "platformio.ini" <http://docs.platformio.org/page/projectconf.html>`__,
such as: ``build_flags``, ``build_unflags``, etc.
(`issue #889 <https://github.com/platformio/platformio-core/issues/889>`_)

2
docs

Submodule docs updated: 723f9369f5...78fb29eb21

View File

@ -48,6 +48,8 @@ def generate_boards(boards):
return int(ceil(size / b) * b)
assert NotImplemented()
platforms = {m['name']: m['title'] for m in PLATFORM_MANIFESTS}
lines = []
lines.append("""
@ -56,6 +58,7 @@ def generate_boards(boards):
* - ID
- Name
- Platform
- Microcontroller
- Frequency
- Flash
@ -66,12 +69,15 @@ def generate_boards(boards):
lines.append("""
* - ``{id}``
- `{name} <{url}>`_
- :ref:`{platform_title} <platform_{platform}>`
- {mcu}
- {f_cpu:d} MHz
- {rom} Kb
- {ram} Kb""".format(
id=data['id'],
name=data['name'],
platform=data['platform'],
platform_title=platforms[data['platform']],
url=data['url'],
mcu=data['mcu'].upper(),
f_cpu=int(data['fcpu']) / 1000000,
@ -423,11 +429,88 @@ popular embedded boards and IDE.
f.write("\n".join(lines))
def update_debugging():
vendors = {}
platforms = []
frameworks = []
for data in BOARDS:
if not data['debug']:
continue
platforms.append(data['platform'])
frameworks.extend(data['frameworks'])
vendor = data['vendor']
if vendor in vendors:
vendors[vendor].append(data)
else:
vendors[vendor] = [data]
lines = []
# Platforms
lines.append(""".. _debugging_platforms:
Platforms
---------
.. list-table::
:header-rows: 1
* - Name
- Description""")
for manifest in PLATFORM_MANIFESTS:
if manifest['name'] not in platforms:
continue
p = PlatformFactory.newPlatform(manifest['name'])
lines.append(
"""
* - :ref:`platform_{type_}`
- {description}"""
.format(type_=manifest['name'], description=p.description))
# Frameworks
lines.append("""
Frameworks
----------
.. list-table::
:header-rows: 1
* - Name
- Description""")
for framework in API_FRAMEWORKS:
if framework['name'] not in frameworks:
continue
lines.append("""
* - :ref:`framework_{name}`
- {description}""".format(**framework))
# Boards
lines.append("""
Boards
------
.. note::
For more detailed ``board`` information please scroll tables below by horizontal.
""")
for vendor, boards in sorted(vendors.iteritems()):
lines.append(str(vendor))
lines.append("~" * len(vendor))
lines.append(generate_boards(boards))
with open(
join(util.get_source_dir(), "..", "docs", "plus",
"debugging.rst"), "r+") as fp:
content = fp.read()
fp.seek(0)
fp.truncate()
fp.write(content[:content.index(".. _debugging_platforms:")] +
"\n".join(lines))
def main():
update_create_platform_doc()
update_platform_docs()
update_framework_docs()
update_embedded_boards()
update_debugging()
if __name__ == "__main__":

View File

@ -73,7 +73,7 @@ def test_init_ide_atom(clirunner, validate_cliresult, tmpdir):
# switch to NodeMCU
result = clirunner.invoke(
cmd_init, ["--ide", "atom", "-b", "nodemcuv2", "-b", "uno"])
cmd_init, ["--ide", "atom", "-b", "nodemcuv2"])
validate_cliresult(result)
validate_pioproject(str(tmpdir))
assert "arduinoespressif" in tmpdir.join(".clang_complete").read()