Palatis
September 24, 2016, 8:09pm
1
I’ve started a platform for the old-and-popular-and-all-forgotten mcs51
.
Just because I want that Activate Power Mode while I code…
The setup is a bit tricky ATM, I’ve only tested it on Linux, which is my primary working platform.
The platform is in an experimental stage.
use SDCC as it’s toolchain, and, no, we don’t have C++ support.
I have only created board support for the one I’ve got, which is a Nuvoton n79e855…
I haven’t found a way to upload the compiled code onto the board, yet. Nuvoton just don’t provide linux tool, so I’m pretty much on my own. Trying hard to figure it out.
However, it’s a start after all, I accept PR
3 Likes
Wow!!! New 3-rd party development platform
A few hints:
“HOWTO (Setup Platform.io for MCS-51)” -is very complicated Really, you need 1 magic command:
platformio platform install https://github.com/Palatis/platform-mcs51.git
{
"name": "mcs51",
"title": "MCS 8051/8052",
"description": "Intel 8051/8052 8-bit and 3rd party compatible MCUs those which are used almost everywhere.",
"url": "https://en.wikipedia.org/wiki/Intel_MCS-51",
"homepage": "https://github.com/Palatis/platform-mcs51",
"license": "Apache-2.0",
"engines": {
"platformio": "^3.0.0",
"scons": ">=2.3.0,<2.6.0"
},
"repository": {
"type": "git",
"url": "https://github.com/Palatis/platform-mcs51.git"
},
"version": "0.0.1",
"packageRepositories": [
{
"framework-nakedmcs51": [
{
"url": "https://github.com/Palatis/framework-nakedmcs51/archive/master.zip",
"version": "0.0.1"
}
]
}
],
"frameworks": {
"naked": {
"package": "framework-nakedmcs51",
"script": "builder/frameworks/naked.py"
}
},
"packages": {
"toolchain-sdcc": {
"type": "toolchain",
"version": "~1.20500"
},
"framework-nakedmcs51": {
"type": "framework",
"optional": true,
"version": "~0.0.1"
},
"tool-srecord": {
"type": "uploader",
"optional": true,
"version": "~1.64"
}
}
}
Binary files
We use https://bintray.com and recommend it you. You can out here toolchains and manifest. See PlatformIO repositories:
If you finish with this development platform, we will add it to global registry.
Palatis
September 24, 2016, 8:53pm
3
the problem now bugs me are the toolchain and tools.
how do I provide these for different platforms (linux-amd64 / linux-i686 / windowns-x32 / windows-x64 / osx-whatever)?
See existing global manifest https://dl.bintray.com/platformio/dl-packages/manifest.json
Do you have these toolchains for mentioned archs?
Palatis
September 24, 2016, 8:59pm
5
SDCC is cross-platform, at least we get linux (i386/amd64), windows (x32/x64), and osx (ppc /i386).
Palatis
September 24, 2016, 9:02pm
6
i’m also having problem with the linter, Atom tries to lint using gcc (and of course it don’t work, it complains about SDCC flags…), how do I make it lint with SDCC?
or… disable linter FTM completely, anyway.
SDCC is cross-platform, at least we get linux (i386/amd64), windows (x32/x64), and osx (ppc /i386).
Please create own package repository on https://bintray.com with manifest for these packages
or… disable linter FTM completely, anyway.
Project contains .gcc-flags.json
file. Try to set it to
{
}
Palatis
September 24, 2016, 11:58pm
8
Project contains .gcc-flags.json file. Try to set it to
{
}
is there anyway that I can tell it to use sdcc
for execPath
?
Palatis
September 25, 2016, 3:11am
9
I created the manifest.json files for platforms and packages…
https://dl.bintray.com/palatis/platformio-dl-platforms/manifest.json
https://dl.bintray.com/palatis/platformio-dl-packages/manifest.json
now
$ pio platform install https://github.com/Palatis/platform-mcs51.git
will just work.
well… at least on linux…
edit: and windows 10 x64.
We use this package. I’m not sure that non-GCC compiler will work here.
Palatis
September 25, 2016, 6:39pm
11
is it possible to add support in platformio, to disable the linter for a specific platform completely?
like "linter": "none"
maybe?
I’ll check it automatically. Please open a feature request here Issues · platformio/platformio-core · GitHub
Palatis
September 27, 2016, 11:03pm
13
minor updates to platform-mcs51
, tweaking iram/xram/code/heap size, etc.
majorly targeted on fixing linking issue.
I’m happy to report that the platform-mcs51 has been working great on the Nuvoton MS51FB9AE and MS51TC0AE chipsets.
I know it’s been awhile since the original post…but “nuvoprog” does work alright for Linux. It’s unfortunately coded in “Go”, which is lousy at best.