Commit Graph

713 Commits

Author SHA1 Message Date
Li Jie
cc65ee18b5 full test params passing of exported functions 2025-09-12 10:08:01 +08:00
Li Jie
50d1d2e19a remove duplicated return 2025-09-11 15:02:45 +08:00
Li Jie
3605eeeef7 export c header file for build library 2025-09-11 14:07:58 +08:00
Li Jie
a2742a9de4 set buildmode to exe for non-build mode 2025-09-11 08:53:17 +08:00
Li Jie
68947bfc1f Fix library mode linking by optimizing genMainModuleFile
- For library modes (c-archive, c-shared), only generate minimal code with __llgo_argc/__llgo_argv globals
- For executable mode, generate full main function with runtime initialization
- This fixes undefined symbol errors when linking libraries that reference these globals
2025-09-11 08:53:17 +08:00
Li Jie
e05c8b9f46 Implement llgo build mode support (#1197)
- Add BuildMode type with three build modes: exe, c-archive, c-shared
- Restrict buildmode flag to llgo build command only (not run/install/test)
- Implement build mode specific linker arguments:
  - c-shared: use -shared -fPIC flags
  - c-archive: use ar tool to create static archive
  - exe: default executable mode
- Add normalizeOutputPath function for platform-specific file naming conventions
- Generate C header files for library modes
- Fix buildmode flag conflict by removing from PassArgs
- Add comprehensive test coverage for all build modes
- Resolve duplicate logic between defaultAppExt and normalizeOutputPath

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 08:53:17 +08:00
xushiwei
d5ad4d997d Merge pull request #1272 from visualfc/cabi_opt
internal/cabi: call optimization
2025-09-10 13:49:48 +08:00
xushiwei
d0962d8adc Merge pull request #1264 from MeteorsLiu/libc-version
Fix xtensa newlib `stdio` stuck and support libc version
2025-09-10 13:46:36 +08:00
Haolan
073e79d03b chore: rename ArchiveSrcDir 2025-09-10 11:47:02 +08:00
visualfc
dd50d4dff0 internal/cabi: option optimize 2025-09-09 21:10:53 +08:00
visualfc
b6d43ae88a internal/cabi: transformFuncBody check AttrWidthType(2) 2025-09-09 21:04:24 +08:00
visualfc
89e93f9e7a internal/cabi: transformCallInstr check AttrPointer 2025-09-09 21:04:24 +08:00
visualfc
0b6a558667 internal/cbi: replaceParamAlloc 2025-09-09 21:04:24 +08:00
visualfc
937f8339c7 internal/cabi: call optimization 2025-09-09 21:04:24 +08:00
Haolan
8ce6c3b9ab chore: fix commets and format
Update internal/crosscompile/compile/rtlib/rt_test.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

Update internal/crosscompile/compile/libc/libc_test.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

Update internal/crosscompile/compile/libc/libc_test.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

chore: format contents
2025-09-09 18:23:31 +08:00
Haolan
d4474be921 chore: fix some wrong commets 2025-09-09 18:23:31 +08:00
Haolan
6aa63121ff chore: upgrade newlib 2025-09-09 18:23:31 +08:00
Haolan
b239494a9f test: add test for getting config 2025-09-09 18:23:31 +08:00
Haolan
95bd495d7b feat: support libc version 2025-09-09 18:23:31 +08:00
luoliwoshang
68623f0b27 env:find crosscompile llvm 2025-09-09 10:22:43 +08:00
luoliwoshang
a19011897c install with esp-clang & new cache key 2025-09-08 22:52:51 +08:00
Li Jie
d46a3f2f49 Merge commit '7de4137d4678a3bcbd735f887028489f97f1e479' into embed-cmds
# Conflicts:
#	internal/build/build.go
2025-09-08 15:22:48 +08:00
xushiwei
16b3473f52 Merge pull request #1274 from luoliwoshang/fix/ldl
fix:ldflags -ldl for earlier glibc version
2025-09-08 14:43:15 +08:00
Li Jie
20ce823b68 fix: targets tests 2025-09-07 16:37:42 +08:00
Li Jie
3ecf9b35f3 refine: safe shell cmd line parse 2025-09-07 16:37:38 +08:00
Li Jie
806b16c2c8 refine: reduce duplicated env expand funcs 2025-09-07 16:37:38 +08:00
Li Jie
9eeb14ae31 feat: support generic bin and intel hex firmware 2025-09-07 16:37:37 +08:00
Li Jie
df07513a37 refine: reduce unnecessary format conversion 2025-09-07 16:37:34 +08:00
Li Jie
16c8402065 refactor: multi format generation and llgo build flags 2025-09-07 16:23:31 +08:00
Li Jie
c0afe199c2 refactor: move device types definition into flash 2025-09-07 16:23:31 +08:00
Li Jie
1c2aea10f0 feat: add Arduino 1200bps reset support before flashing
- Add touchSerialPortAt1200bps function from TinyGo for Arduino bootloader reset
- Update Flash function to trigger 1200bps reset when flash-1200-bps-reset is true
- Add 2-second wait after reset for device to enter bootloader mode
- Support retry mechanism with Windows-specific error handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 16:23:31 +08:00
Li Jie
4e590d42be feat: auto guess port for monitoring 2025-09-07 16:23:30 +08:00
Li Jie
228d7cee31 feat: make -port optional 2025-09-07 16:23:30 +08:00
Li Jie
c6676917b3 refine: check msd paths 2025-09-07 16:23:30 +08:00
Li Jie
a2c9c7f10a feat: llgo run -target target -port port auto start monitor 2025-09-07 16:23:30 +08:00
Li Jie
9a5b231c88 feat: llgo monitor -target target -port port 2025-09-07 16:23:27 +08:00
Li Jie
1a3bca40bc feat: implement flash functionality 2025-09-06 20:53:28 +08:00
Li Jie
549beeb101 test output format for all target/emuator/flash-method 2025-09-06 19:46:33 +08:00
Li Jie
7cad146013 refactor build/install/run pipeline 2025-09-06 19:45:48 +08:00
luoliwoshang
054591c279 fix:ldflags -ldl for earlier glibc version 2025-09-06 18:56:58 +08:00
Li Jie
da9865104f export flash, openocd, msd 2025-09-06 16:21:15 +08:00
Li Jie
1033452e8f extract run from linkMainPkg, add flash scaffold 2025-09-06 16:16:04 +08:00
Li Jie
5e5d5c2a83 Build and run for embeded 2025-09-06 10:35:58 +08:00
Li Jie
df8f67db5a remove debug log 2025-09-06 10:35:58 +08:00
Li Jie
e9170e4cef feat: add -file-format flag for flexible output formats
Add support for -file-format flag to llgo build command allowing users to specify output format independently of target configuration.

Changes:
- Add -file-format flag supporting bin, hex, elf, uf2, zip formats
- Implement two-stage conversion: firmware format → file format
- Add ConvertOutput function with hex format conversion support
- Update build logic to handle different modes (build vs run/install)
- Add verbose logging for conversion operations

For build command: only convert firmware when -file-format is specified
For run/install commands: always convert firmware when target requires it

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 10:35:58 +08:00
Li Jie
62fc21e22b Merge commit '6588f36123eababf6e24564b49e5af374285d2b5' into optional-esp-clang
# Conflicts:
#	internal/crosscompile/crosscompile.go
#	internal/crosscompile/crosscompile_test.go
2025-09-03 09:32:38 +08:00
xushiwei
6588f36123 Merge pull request #1246 from MeteorsLiu/esp-libc
feat: support libc/compiler-rt for small places
2025-09-03 07:05:51 +08:00
Haolan
5a4c83ef85 test: add _embdemo print test 2025-09-02 18:27:59 +08:00
Haolan
82bb6e84d0 test: add rt test 2025-09-02 18:23:28 +08:00
Haolan
b99c073cca test: add test for compile options 2025-09-02 18:04:35 +08:00