support flashing pca10059 from windows
Этот коммит содержится в:
родитель
9912dd6db1
коммит
1f5e4e79aa
5 изменённых файлов: 48 добавлений и 1 удалений
|
@ -639,6 +639,18 @@ func Build(pkgName, outpath string, config *compileopts.Config, action func(Buil
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
case "nrf-dfu":
|
||||
// special format for nrfutil for Nordic chips
|
||||
tmphexpath := filepath.Join(dir, "main.hex")
|
||||
err := objcopy(executable, tmphexpath, "hex")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
tmppath = filepath.Join(dir, "main"+outext)
|
||||
err = makeDFUFirmwareImage(config.Options, tmphexpath, tmppath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
default:
|
||||
return fmt.Errorf("unknown output binary format: %s", outputBinaryFormat)
|
||||
}
|
||||
|
|
27
builder/nrfutil.go
Обычный файл
27
builder/nrfutil.go
Обычный файл
|
@ -0,0 +1,27 @@
|
|||
package builder
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os/exec"
|
||||
|
||||
"github.com/tinygo-org/tinygo/compileopts"
|
||||
)
|
||||
|
||||
// https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_nrfutil%2FUG%2Fnrfutil%2Fnrfutil_intro.html
|
||||
|
||||
func makeDFUFirmwareImage(options *compileopts.Options, infile, outfile string) error {
|
||||
cmdLine := []string{"nrfutil", "pkg", "generate", "--hw-version", "52", "--sd-req", "0x0", "--debug-mode", "--application", infile, outfile}
|
||||
|
||||
if options.PrintCommands != nil {
|
||||
options.PrintCommands(cmdLine[0], cmdLine[1:]...)
|
||||
}
|
||||
|
||||
cmd := exec.Command(cmdLine[0], cmdLine[1:]...)
|
||||
cmd.Stdout = ioutil.Discard
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
return fmt.Errorf("could not run nrfutil pkg generate: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
|
@ -254,6 +254,11 @@ func (c *Config) BinaryFormat(ext string) string {
|
|||
// More information:
|
||||
// https://github.com/Microsoft/uf2
|
||||
return "uf2"
|
||||
case ".zip":
|
||||
if c.Target.BinaryFormat != "" {
|
||||
return c.Target.BinaryFormat
|
||||
}
|
||||
return "zip"
|
||||
default:
|
||||
// Use the ELF format for unrecognized file formats.
|
||||
return "elf"
|
||||
|
|
2
main.go
2
main.go
|
@ -275,6 +275,8 @@ func Flash(pkgName, port string, options *compileopts.Options) error {
|
|||
fileExt = ".bin"
|
||||
case strings.Contains(config.Target.FlashCommand, "{uf2}"):
|
||||
fileExt = ".uf2"
|
||||
case strings.Contains(config.Target.FlashCommand, "{zip}"):
|
||||
fileExt = ".zip"
|
||||
default:
|
||||
return errors.New("invalid target file - did you forget the {hex} token in the 'flash-command' section?")
|
||||
}
|
||||
|
|
|
@ -2,5 +2,6 @@
|
|||
"inherits": ["nrf52840"],
|
||||
"build-tags": ["pca10059"],
|
||||
"linkerscript": "targets/pca10059.ld",
|
||||
"flash-command": "nrfutil pkg generate --hw-version 52 --sd-req 0x0 --application {hex} --application-version 1 /tmp/tinygo_$$.zip && nrfutil dfu usb-serial -pkg /tmp/tinygo_$$.zip -p {port} -b 115200 && rm -f /tmp/tinygo_$$.zip"
|
||||
"binary-format": "nrf-dfu",
|
||||
"flash-command": "nrfutil dfu usb-serial -pkg {zip} -p {port} -b 115200"
|
||||
}
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче