Go to file
Raman Gopalan 0967eb4c24 avr32dev1: Fix compilation and nsh boot-up
I recently imported NuttX version 6.0 (and nsh) into a Microchip
Studio project [1] on Windows to figure out what was going wrong with
the avr32dev1 build. I also briefly checked NuttX version 10.

I worked with the assumption that the avr32 (avr32dev1) specific
changes to the codebase were minimal across NuttX releases.

For the initial proof of concept I used Microchip Studio version 7.0
(with the recent Microchip's ASF updates). I use avr32-gcc (4.4.7)
hosted here [2] for building NuttX for avr32dev1 on GNU/Linux.

Even with the Microchip Studio project, I had initial debug problems
with just stepping through the code a line at a time. I had to bring
in crt0, a trampoline stub and the linker file from one of my older
projects to really build on the suspicion I had with the linker file.

Perhaps an older version of avr32-gcc did something differently. I am
not sure about this. I used avr32-objdump to see the output sections
of the generated elf file. I just had to tweak the linker script to
ensure correct linking of the sections.

With those changes, I was able to inspect the UART sections within
NuttX Microchip Studio project.

Second important change: the transmit pin: I had to reassign the pin
to see the nsh console.

These are the currently assigned UART pins:

RX: PA_24 -> Physical IC pin 59
TX: PB_02 -> Physical IC pin 24

For the avr32dev1 board, they are pins: J1 (berg pin 28) and J2 (berg
pin 10).

In addition, the PR fixes silly compilation problems with avr32dev1.

I have tested the nsh build with my avr32dev1 boards. I used Atmel ICE
to program one of them (flash at 0x80000000) and dfu-programmer to
test my other board (flash at 0x80002000). The other RS-232 parameters
are the same as they were.

References:
[1]: https://github.com/ramangopalan/nuttx_avr32dev1
[2]: https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86_64
2024-02-08 11:12:13 -03:00
.github build(deps): bump actions/cache from 3 to 4 2024-01-22 01:42:03 -08:00
arch avr32dev1: Fix compilation and nsh boot-up 2024-02-08 11:12:13 -03:00
audio Documentation: remove all migrated READMEs 2023-10-29 21:03:54 -03:00
binfmt log messages of binfmt are very much. 2023-12-29 17:36:47 +08:00
boards avr32dev1: Fix compilation and nsh boot-up 2024-02-08 11:12:13 -03:00
cmake Revert "cmake: restore old behavior for savedefconfig" 2023-12-20 16:05:19 +01:00
crypto sched: explicitly select the cpuload clock source configuration 2023-11-01 09:27:56 +08:00
Documentation risc-v/qemu-rv/rv-virt: Add support to loader ROMFS image in kernel 2024-02-07 19:46:42 -08:00
drivers drivers/modem/alt1250: Add LTE_CMDID_RESTARTAPI command 2024-02-07 22:19:03 -08:00
dummy build: add initial cmake build system 2023-07-08 13:50:48 +08:00
fs docs/fs/vfat: Improve VFAT documentation 2024-02-05 03:43:41 -08:00
graphics poll: pollsetup should notify only one fd passd by caller 2023-11-21 09:07:17 +01:00
include drivers/modem/alt1250: Add LTE_CMDID_RESTARTAPI command 2024-02-07 22:19:03 -08:00
libs avr32dev1: Fix compilation and nsh boot-up 2024-02-08 11:12:13 -03:00
mm compiler/tasking: fix NULL pointer reference 2024-01-31 05:02:56 -08:00
net net/nat: Fix ICMP Error MSG Processing 2024-02-05 19:36:59 +08:00
openamp rptun: Select OPENMAP under RPTUN 2023-12-28 11:08:57 +08:00
pass1
sched sched/logging: add task activation/exit logs 2024-01-14 23:04:42 -08:00
syscall sched/semaphore: Move named semaphores to user space 2023-11-27 04:52:54 -08:00
tools tools/cxd56: Update to output bss-only section to spk file 2024-02-05 05:53:51 -08:00
video build: add initial cmake build system 2023-07-08 13:50:48 +08:00
wireless bluetooth: Prevent btsak from repeatedly showing the same error. 2024-01-14 02:16:48 -08:00
.asf.yaml
.gitignore fs/vfat: Fix typo in the macro DIRSEC_BYTENDX 2024-02-03 12:46:08 -03:00
.yamllint
AUTHORS
CMakeLists.txt cmake: use -fvisibility=default for sim_head 2024-01-06 04:21:52 -08:00
CONTRIBUTING.md
INVIOLABLES.md
Kconfig Various fixes for PCI work 2024-01-25 09:09:30 -08:00
LICENSE free disk space action added to fix docker image build issue 2023-12-08 14:42:17 +01:00
Makefile
NOTICE
README.md Gathering community recommendations 2023-10-28 13:55:56 +08:00
ReleaseNotes Documentation: move ReleaseNotes 2023-09-26 20:41:00 +08:00

POSIX Badge License Issues Tracking Badge Contributors GitHub Build Badge Documentation Badge

Apache NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOSs (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).

For brevity, many parts of the documentation will refer to Apache NuttX as simply NuttX.

Getting Started

First time on NuttX? Read the Getting Started guide! If you don't have a board available, NuttX has its own simulator that you can run on terminal.

Documentation

You can find the current NuttX documentation on the Documentation Page.

Alternatively, you can build the documentation yourself by following the Documentation Build Instructions.

The old NuttX documentation is still available in the Apache wiki.

Supported Boards

NuttX supports a wide variety of platforms. See the full list on the Supported Platforms page.

Contributing

If you wish to contribute to the NuttX project, read the Contributing guidelines for information on Git usage, coding standard, workflow and the NuttX principles.

License

The code in this repository is under either the Apache 2 license, or a license compatible with the Apache 2 license. See the License Page for more information.