Dear Alan, Greetings!

I re-installed my GNU/Linux. I am running Ubuntu 23.10. Atleast,
things are working as expected. All my problems with /dev are
solved. My Atmel ICE device is getting enumerated fine. Here is my
version.

raman@foo:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 23.10
Release: 23.10
Codename: mantic

Second: I had a little luck with OpenOCD and Atmel ICE for the avr32
target. The following invocation gives me the following response.

raman@foo:~$ sudo openocd -d3 -f interface/cmsis-dap.cfg -c "transport
select jtag" -c "adapter speed 1000" -f target/avr32.cfg
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
User : 3 2 options.c:52 configuration_output_handler(): debug_level: 3
User : 4 2 options.c:52 configuration_output_handler():
Debug: 5 2 options.c:233 add_default_dirs(): bindir=/usr/bin
Debug: 6 2 options.c:234 add_default_dirs(): pkgdatadir=/usr/share/openocd
Debug: 7 2 options.c:235 add_default_dirs(): exepath=/usr/bin
Debug: 8 2 options.c:236 add_default_dirs(): bin2data=../share/openocd
Debug: 9 2 configuration.c:33 add_script_search_dir(): adding
/root/.config/openocd
Debug: 10 2 configuration.c:33 add_script_search_dir(): adding
/root/.openocd
Debug: 11 2 configuration.c:33 add_script_search_dir(): adding
/usr/bin/../share/openocd/site
Debug: 12 2 configuration.c:33 add_script_search_dir(): adding
/usr/bin/../share/openocd/scripts
Debug: 13 2 command.c:155 script_debug(): command - ocd_find
interface/cmsis-dap.cfg
Debug: 14 2 configuration.c:88 find_file(): found
/usr/bin/../share/openocd/scripts/interface/cmsis-dap.cfg
Debug: 15 2 command.c:155 script_debug(): command - adapter driver cmsis-dap
Debug: 16 2 command.c:155 script_debug(): command - transport select jtag
User : 17 2 options.c:52 configuration_output_handler(): jtagUser : 18 2
options.c:52 configuration_output_handler():
Debug: 19 2 command.c:155 script_debug(): command - adapter speed 1000
Debug: 20 2 adapter.c:251 adapter_config_khz(): handle adapter khz
Debug: 21 2 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter
specific speed value
Debug: 22 2 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter
specific speed value
User : 23 2 options.c:52 configuration_output_handler(): adapter speed:
1000 kHz
User : 24 2 options.c:52 configuration_output_handler():
Debug: 25 2 command.c:155 script_debug(): command - ocd_find
target/avr32.cfg
Debug: 26 2 configuration.c:88 find_file(): found
/usr/bin/../share/openocd/scripts/target/avr32.cfg
Debug: 27 2 command.c:155 script_debug(): command - adapter srst delay 100
Debug: 28 2 command.c:155 script_debug(): command - jtag_ntrst_delay 100
Debug: 29 2 command.c:155 script_debug(): command - reset_config
trst_and_srst separate
Debug: 30 2 command.c:155 script_debug(): command - jtag newtap avr32 cpu
-irlen 5 -ircapture 0x1 -irmask 0x1 -expected-id 0x21e8203f
Debug: 31 2 tcl.c:557 jim_newtap_cmd(): Creating New Tap, Chip: avr32, Tap:
cpu, Dotted: avr32.cpu, 8 params
Debug: 32 2 tcl.c:582 jim_newtap_cmd(): Processing option: -irlen
Debug: 33 2 tcl.c:582 jim_newtap_cmd(): Processing option: -ircapture
Debug: 34 2 tcl.c:582 jim_newtap_cmd(): Processing option: -irmask
Warn : 35 2 tcl.c:490 jim_newtap_ir_param(): avr32.cpu: nonstandard IR mask
Debug: 36 2 tcl.c:582 jim_newtap_cmd(): Processing option: -expected-id
Debug: 37 2 core.c:1474 jtag_tap_init(): Created Tap: avr32.cpu @ abs
position 0, irlen 5, capture: 0x1 mask: 0x1
Debug: 38 2 command.c:155 script_debug(): command - target create avr32.cpu
avr32_ap7k -endian big -chain-position avr32.cpu
Debug: 39 2 target.c:2199 target_free_all_working_areas_restore(): freeing
all working areas
User : 40 2 options.c:52 configuration_output_handler(): avr32.cpuUser : 41
2 options.c:52 configuration_output_handler():
Info : 42 2 server.c:297 add_service(): Listening on port 6666 for tcl
connections
Info : 43 2 server.c:297 add_service(): Listening on port 4444 for telnet
connections
Debug: 44 2 command.c:155 script_debug(): command - init
Debug: 45 2 command.c:155 script_debug(): command - target init
Debug: 46 2 command.c:155 script_debug(): command - target names
Debug: 47 2 command.c:155 script_debug(): command - avr32.cpu cget -event
gdb-flash-erase-start
Debug: 48 2 command.c:155 script_debug(): command - avr32.cpu configure
-event gdb-flash-erase-start reset init
Debug: 49 2 command.c:155 script_debug(): command - avr32.cpu cget -event
gdb-flash-write-end
Debug: 50 2 command.c:155 script_debug(): command - avr32.cpu configure
-event gdb-flash-write-end reset halt
Debug: 51 2 command.c:155 script_debug(): command - avr32.cpu cget -event
gdb-attach
Debug: 52 2 command.c:155 script_debug(): command - avr32.cpu configure
-event gdb-attach halt 1000
Debug: 53 2 target.c:1657 handle_target_init_command(): Initializing
targets...
Debug: 54 2915 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x1d6b:0x0003
Debug: 55 3091 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x1d6b:0x0002
Debug: 56 3226 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x0bda:0x0411
Debug: 57 3307 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x1d6b:0x0003
Debug: 58 3426 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x0408:0x5371
Debug: 59 3540 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x8087:0x0a2b
Debug: 60 4542 cmsis_dap_usb_bulk.c:126 cmsis_dap_usb_open(): could not
read serial number for device 0x03eb:0x2ff6: Operation timed out
Warn : 61 5545 cmsis_dap_usb_bulk.c:147 cmsis_dap_usb_open(): could not
read product string for device 0x03eb:0x2ff6: Operation timed out
Debug: 62 5545 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x03eb:0x2ff6
Debug: 63 5546 cmsis_dap_usb_bulk.c:150 cmsis_dap_usb_open(): found product
string of 0x03eb:0x2141 'Atmel-ICE CMSIS-DAP'
Debug: 64 5546 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x03eb:0x2141
Debug: 65 5547 cmsis_dap_usb_bulk.c:217 cmsis_dap_usb_open(): found
interface 0 string 'Atmel-ICE CMSIS-DAP'
Debug: 66 5547 cmsis_dap_usb_bulk.c:237 cmsis_dap_usb_open(): skipping
interface 0, endpoint[0] is not bulk out
Debug: 67 5547 cmsis_dap_usb_bulk.c:237 cmsis_dap_usb_open(): skipping
interface 1, endpoint[0] is not bulk out
Debug: 68 5551 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x0bda:0x5411
Debug: 69 5553 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x046d:0xc542
Debug: 70 5553 cmsis_dap_usb_bulk.c:170 cmsis_dap_usb_open(): enumerating
interfaces of 0x1d6b:0x0002
Info : 71 5634 cmsis_dap.c:1027 cmsis_dap_get_caps_info(): CMSIS-DAP: SWD
supported
Info : 72 5634 cmsis_dap.c:1027 cmsis_dap_get_caps_info(): CMSIS-DAP: JTAG
supported
Info : 73 5635 cmsis_dap.c:1004 cmsis_dap_get_version_info(): CMSIS-DAP: FW
Version = 1.0
Info : 74 5636 cmsis_dap.c:989 cmsis_dap_get_serial_info(): CMSIS-DAP:
Serial# = J42700053627
Info : 75 5637 cmsis_dap.c:1197 cmsis_dap_init(): CMSIS-DAP: Interface
Initialised (JTAG)
Debug: 76 5638 cmsis_dap.c:1238 cmsis_dap_init(): CMSIS-DAP: Packet Count =
4
Debug: 77 5638 cmsis_dap.c:1241 cmsis_dap_init(): Allocating FIFO for 3
pending packets
Info : 78 5641 cmsis_dap.c:1060 cmsis_dap_get_status(): SWCLK/TCK = 1
SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1
Info : 79 5644 cmsis_dap.c:1292 cmsis_dap_init(): CMSIS-DAP: Interface ready
Debug: 80 5644 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter
specific speed value
Debug: 81 5644 adapter.c:219 adapter_khz_to_speed(): have adapter set up
Debug: 82 5645 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter
specific speed value
Debug: 83 5645 adapter.c:219 adapter_khz_to_speed(): have adapter set up
Info : 84 5645 adapter.c:179 adapter_init(): clock speed 1000 kHz
Debug: 85 5645 openocd.c:134 handle_init_command(): Debug Adapter init
complete
Debug: 86 5645 command.c:155 script_debug(): command - transport init
Debug: 87 5645 log.c:412 gdb_timeout_warning(): keep_alive() was not
invoked in the 1000 ms timelimit (5645 ms). This may cause trouble with GDB
connections.
Debug: 88 5645 transport.c:219 handle_transport_init():
handle_transport_init
Debug: 89 5646 core.c:830 jtag_add_reset(): SRST line released
Debug: 90 5646 core.c:855 jtag_add_reset(): TRST line released
Debug: 91 5646 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
Debug: 92 5851 command.c:155 script_debug(): command - jtag arp_init
Debug: 93 5851 core.c:1509 jtag_init_inner(): Init JTAG chain
Debug: 94 5851 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
Info : 95 5851 cmsis_dap.c:1349 cmsis_dap_execute_tlr_reset(): cmsis-dap
JTAG TLR_RESET
Debug: 96 5852 core.c:1234 jtag_examine_chain(): DR scan interrogation for
IDCODE/BYPASS
Debug: 97 5852 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
Info : 98 5855 cmsis_dap.c:1349 cmsis_dap_execute_tlr_reset(): cmsis-dap
JTAG TLR_RESET
Info : 99 5856 core.c:1133 jtag_examine_chain_display(): JTAG tap:
avr32.cpu tap/device found: 0x81ee403f (mfg: 0x01f (Atmel), part: 0x1ee4,
ver: 0x8)
Warn : 100 5856 core.c:1133 jtag_examine_chain_display(): JTAG tap:
avr32.cpu       UNEXPECTED: 0x81ee403f (mfg: 0x01f (Atmel), part: 0x1ee4,
ver: 0x8)
Error: 101 5856 core.c:1133 jtag_examine_chain_display(): JTAG tap:
avr32.cpu  expected 1 of 1: 0x21e8203f (mfg: 0x01f (Atmel), part: 0x1e82,
ver: 0x2)
Error: 102 5856 core.c:1554 jtag_init_inner(): Trying to use configured
scan chain anyway...
Debug: 103 5856 core.c:1364 jtag_validate_ircapture(): IR capture
validation scan
Debug: 104 5857 core.c:1421 jtag_validate_ircapture(): avr32.cpu: IR
capture 0x01
Warn : 105 5857 core.c:1577 jtag_init_inner(): Bypassing JTAG setup events
due to errors
Debug: 106 5857 command.c:155 script_debug(): command - dap init
Debug: 107 5857 arm_dap.c:97 dap_init_all(): Initializing all DAPs ...
Debug: 108 5857 openocd.c:151 handle_init_command(): Examining targets...
Debug: 109 5857 target.c:1843 target_call_event_callbacks(): target event
19 (examine-start) for core avr32.cpu
Info : 110 5860 avr32_ap7k.c:532 avr32_ap7k_examine(): device id: 81ee403f
Info : 111 5866 avr32_ap7k.c:538 avr32_ap7k_examine(): target is halted
Debug: 112 5866 target.c:1843 target_call_event_callbacks(): target event
21 (examine-end) for core avr32.cpu
Debug: 113 5866 command.c:155 script_debug(): command - flash init
Debug: 114 5866 tcl.c:1375 handle_flash_init_command(): Initializing flash
devices...
Debug: 115 5866 command.c:155 script_debug(): command - nand init
Debug: 116 5866 tcl.c:487 handle_nand_init_command(): Initializing NAND
devices...
Debug: 117 5866 command.c:155 script_debug(): command - pld init
Debug: 118 5866 pld.c:194 handle_pld_init_command(): Initializing PLDs...
Debug: 119 5866 command.c:155 script_debug(): command - tpiu init
Info : 120 5866 gdb_server.c:3791 gdb_target_start(): starting gdb server
for avr32.cpu on 3333
Info : 121 5866 server.c:297 add_service(): Listening on port 3333 for gdb
connections

__

And now, I invoked gdb-multiarch from another terminal session and I
received this:

Info : 122 44457 server.c:90 add_connection(): accepting 'gdb' connection
on tcp/3333
Debug: 123 44457 breakpoints.c:362 breakpoint_clear_target_internal():
Delete all breakpoints for target: avr32.cpu
Debug: 124 44457 breakpoints.c:542 watchpoint_clear_target(): Delete all
watchpoints for target: avr32.cpu
Debug: 125 44457 target.c:1843 target_call_event_callbacks(): target event
22 (gdb-attach) for core avr32.cpu
Debug: 126 44457 target.c:5099 target_handle_event(): target(0): avr32.cpu
(avr32_ap7k) event: 22 (gdb-attach) action: halt 1000
Debug: 127 44457 command.c:155 script_debug(): command - halt 1000
Debug: 128 44459 target.c:3305 handle_halt_command(): -
Debug: 129 44459 avr32_ap7k.c:260 avr32_ap7k_halt(): target->state: halted
Debug: 130 44459 avr32_ap7k.c:264 avr32_ap7k_halt(): target was already
halted
Debug: 131 44461 gdb_server.c:1070 gdb_new_connection(): New GDB
Connection: 1, Target avr32.cpu, state: halted
Debug: 132 44461 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet:
qSupported:multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+;memory-tagging+;xmlRegisters=i386
Error: 133 44461 avr32_ap7k.c:577 avr32_ap7k_get_gdb_reg_list():
avr32_ap7k_get_gdb_reg_list: implement me
Error: 134 44461 gdb_server.c:2612 gdb_target_description_supported(): get
register list failed
Info : 135 44461 gdb_server.c:2870 gdb_query_packet(): Failed detecting
Target Description Support, disabling
Debug: 136 44461 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $E01#a6
Debug: 137 44461 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 138 44462 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: vCont?
Debug: 139 44462 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $vCont;c;C;s;S#62
Debug: 140 44462 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 141 44462 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: vMustReplyEmpty
Debug: 142 44462 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $#00
Debug: 143 44462 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 144 44463 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: !
Debug: 145 44463 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $OK#9a
Debug: 146 44463 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 147 44463 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: Hg0
Debug: 148 44463 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $OK#9a
Debug: 149 44463 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 150 44463 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: qTStatus
Debug: 151 44464 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $#00
Debug: 152 44464 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 153 44464 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: ?
User : 154 44464 gdb_server.c:162 gdb_last_signal(): undefined debug reason
8 - target needs reset
Debug: 155 44464 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $S00#b3
Debug: 156 44464 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 157 44464 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: qfThreadInfo
Debug: 158 44464 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $l#6c
Debug: 159 44465 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 160 44465 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: Hc-1
Debug: 161 44465 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $OK#9a
Debug: 162 44465 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 163 44465 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: qC
Debug: 164 44465 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $QC0#c4
Debug: 165 44465 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 166 44465 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: qAttached
Debug: 167 44465 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $1#31
Debug: 168 44465 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 169 44466 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: qOffsets
Debug: 170 44466 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $Text=0;Data=0;Bss=0#04
Debug: 171 44466 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 172 44466 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: g
Error: 173 44466 avr32_ap7k.c:577 avr32_ap7k_get_gdb_reg_list():
avr32_ap7k_get_gdb_reg_list: implement me
Debug: 174 44466 gdb_server.c:1483 gdb_error(): Reporting -4 to GDB as
generic error
Debug: 175 44466 gdb_server.c:406 gdb_log_outgoing_packet(): [avr32.cpu]
sending packet: $E0E#ba
Debug: 176 44466 gdb_server.c:390 gdb_log_incoming_packet(): [avr32.cpu]
received packet: +
Debug: 177 44467 gdb_server.c:228 gdb_get_char_inner(): GDB connection
closed by the remote client
Debug: 178 44467 gdb_server.c:1112 gdb_connection_closed(): GDB Close,
Target: avr32.cpu, state: halted, gdb_actual_connections=0
Debug: 179 44467 target.c:1843 target_call_event_callbacks(): target event
8 (gdb-end) for core avr32.cpu
Debug: 180 44467 target.c:1843 target_call_event_callbacks(): target event
23 (gdb-detach) for core avr32.cpu
Info : 181 44467 server.c:574 server_loop(): dropped 'gdb' connection

> Error: 173 44466 avr32_ap7k.c:577 avr32_ap7k_get_gdb_reg_list():
> avr32_ap7k_get_gdb_reg_list: implement me

>From this part of the log above, I checked the source code [1] of
openocd to see why this might be happening. It turns out that the
function is in fact commented out. I am not sure what happens if I
rebuild openocd with the currently commented implementation. I have yet
to check this.

Second: I tried a few additional things in the context of NuttX and
GNU/Linux. I tried installing the older avr32studio that lives under
archive on Microchip's website.

It took me a few hours to resolve all the Java problems (avr32studio
is constructed around Eclipse). I finally had luck with avr32studio on
GNU/Linux after I installed Oracle's Java 6.0.

But the installer/tools on GUI expects gksudo on GNU/Linux which no
longer exists. This step would have setup udev for the programming
tools. It supports Dragon, AVR One! and the Atmel mkII JTAG
programmer. Unfortunately, I can't get the USB tools required with
avr32studio for a debug session. No support for Atmel ICE :)

Third: I also tried getting the latest version of Wine for Ubuntu to
see if I can get the Microchip Studio 7.0 installer (also the latest)
working. It fails without any echo. I also tried wine-tricks. They
didn't help much. I did a lot of reading on wine-tricks. It was very
interesting. But it didn't help.

I am slowly starting to consider brute-force. Every other direction
pulls me into hours of additional work that takes me all the more away
from NuttX. I really think - and for quicker answers - and although
very painful, I will try to manually make a NuttX project for
Microchip Studio by looking up the Make logs on GNU/Linux. Atleast
debugging works perfectly with Microchip Studio.

Alan, did you have any luck at your end after our previous
discussions? Finally, I still haven't had a chance to see the UART
problem with my logic analyser. I will reserve my entire Sunday for
this activity.

    R

References:
[1]: https://openocd.org/doc-release/doxygen/avr32__ap7k_8c_source.html

On Tue, 21 Nov 2023 at 21:21, Raman Gopalan <ramangopa...@gmail.com> wrote:

>
> Dear Alan, Greetings!
>
> About the CMake files: Despite installing Kconfiglib (for Python3) I get
> errors
> like these:
>
> raman@foo:~/Skullets/nuttxspace/nuttx$ cmake -B build
> -DBOARD_CONFIG=avr32dev1:nsh -GNinja
> CMake Error at CMakeLists.txt:82 (message):
> Kconfig environment depends on kconfiglib, Please install:
>
> $ pip install kconfiglib
>
>
> -- Configuring incomplete, errors occurred!
>
> I wish not to raise a PR for something I have not tested. I am just
> pasting the
> files here for now.
>
> raman@foo:~/Skullets/nuttxspace/nuttx$ cat
> boards/avr/at32uc3/avr32dev1/src/CMakeLists.txt
>
> set(SRCS avr32_boot.c avr32_bringup.c)
>
> if(CONFIG_BOARDCTL)
> list(APPEND SRCS avr32_appinit.c)
> endif()
>
> if(CONFIG_ARCH_BUTTONS)
> list(APPEND SRCS avr32_buttons.c)
> endif()
>
> if(CONFIG_ARCH_LEDS)
> list(APPEND SRCS avr32_leds.c)
> endif()
>
> target_sources(board PRIVATE ${SRCS})
>
> set_property(GLOBAL PROPERTY LD_SCRIPT
> "${NUTTX_BOARD_DIR}/scripts/avr32dev1.ld")
>
> --
>
> raman@foo:~/Skullets/nuttxspace/nuttx$ cat
> boards/avr/at32uc3/avr32dev1/CMakeLists.txt
>
> add_subdirectory(src)
>
> --
>
> Sorry Alan. I will try to reboot my machine with an updated Ubuntu
> GNU/Linux
> and redo all tests with cmake, openocd and dfu-programmer.
>
> Highest regards,
>
> R
>
> On Mon, 20 Nov 2023 at 20:57, Raman Gopalan <ramangopa...@gmail.com>
> wrote:
>
>>
>> Dear Alan,
>>
>> > But again, I think we can avoid this tortuous path and fix the CMake or
>> > Makefile to build on Windows.
>>
>> Fully understand.
>>
>> > BTW, could you please submit a PR with yours CMakefiles to AVR32? I
>> want to
>> > test it here too.
>>
>> For sure. May I send them to you tomorrow? I wrote them on Windows. An
>> invocation of cmake complained with errors on Windows like I mentioned. I
>> will
>> test the CMake files with GNU/Linux before I send them to you tomorrow.
>>
>> R
>>
>> On Mon, 20 Nov 2023 at 18:39, Alan C. Assis <acas...@gmail.com> wrote:
>>
>>> Hi Raman,
>>>
>>> On 11/20/23, Raman Gopalan <ramangopa...@gmail.com> wrote:
>>> > Dear Alan, Greetings!
>>> >
>>> > Many thanks for your suggestions.
>>> >
>>> >> Note that I already adapted it to use your Atmel ICE Device S/N. I
>>> just
>>> > use: $
>>> >> sudo openocd -f openocd.cfg
>>> >
>>> > Thank you Alan. I just pasted your openocd configuration and invoked
>>> > openocd
>>> > just like you suggested. Unfortunately, I still see the same problem I
>>> had
>>> > yesterday. Here is the output:
>>> >
>>> > raman@foo:~/Skullets$ sudo openocd -f openocd.cfg
>>> > Open On-Chip Debugger 0.12.0+dev-00342-g21f17260d (2023-09-28-16:32)
>>> > Licensed under GNU GPL v2
>>> > For bug reports, read
>>> > http://openocd.org/doc/doxygen/bugs.html
>>> > DEPRECATED! use 'adapter driver' not 'interface'
>>> > DEPRECATED! use 'adapter serial' not 'cmsis_dap_serial'
>>> > Info : auto-selecting first available session transport "swd". To
>>> override
>>> > use 'transport select <transport>'.
>>> > DEPRECATED! use 'adapter srst delay' not 'adapter_nsrst_delay'
>>> > DEPRECATED! use 'adapter srst pulse_width' not
>>> 'adapter_nsrst_assert_width'
>>> > adapter srst pulse_width: 100
>>> > Info : Listening on port 6666 for tcl connections
>>> > Info : Listening on port 4444 for telnet connections
>>> > Error: unable to find a matching CMSIS-DAP device
>>> >
>>> > raman@foo:~/Skullets$
>>> >
>>> > But I also confirm that the Atmel ICE works fine with Microchip Studio
>>> OR
>>> > `atprogram', the command line tool that comes with it.
>>> >
>>> > Do you see a similar "unable to find" error at your end?
>>> >
>>>
>>> No, here OpenOCD is able to find my device, see log (without any board
>>> connected to it)
>>>
>>> $ sudo openocd -f openocd.cfg
>>> Open On-Chip Debugger 0.11.0+dev-00062-g6405d35f3 (2023-08-28-15:47)
>>> Licensed under GNU GPL v2
>>> For bug reports, read
>>>         http://openocd.org/doc/doxygen/bugs.html
>>> DEPRECATED! use 'adapter driver' not 'interface'
>>> Info : auto-selecting first available session transport "swd". To
>>> override use 'transport select <transport>'.
>>> DEPRECATED! use 'adapter srst delay' not 'adapter_nsrst_delay'
>>> DEPRECATED! use 'adapter srst pulse_width' not
>>> 'adapter_nsrst_assert_width'
>>> adapter srst pulse_width: 100
>>>
>>> Info : Listening on port 6666 for tcl connections
>>> Info : Listening on port 4444 for telnet connections
>>> Info : CMSIS-DAP: SWD  Supported
>>> Info : CMSIS-DAP: JTAG Supported
>>> Info : CMSIS-DAP: FW Version = 01.27.0082
>>> Info : CMSIS-DAP: Serial# = J41800093472
>>> Info : CMSIS-DAP: Interface Initialised (SWD)
>>> Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1
>>> Info : CMSIS-DAP: Interface ready
>>> Info : clock speed 400 kHz
>>> Error: Error connecting DP: cannot read IDR
>>>
>>> >> Ubuntu, like you are using.
>>> >
>>> > Perfect! Only I don't see what I'm getting wrong yet.
>>> >
>>> >> as said, Kevin Liu was able to integrate NuttX into Microchip Studio
>>> > about 4
>>> >> years ago, but he compiled and exported NuttX as library, just like
>>> PX4
>>> > and
>>> >> other projects are doing.
>>> >
>>> > That is so jolly good! Understand, Alan.
>>> >
>>> >> Raman, I think this hack approach it not easy to do with NuttX,
>>> because
>>> >> different from other RTOS NuttX is very *very* customizable, that
>>> means
>>> > you
>>> >> can fine tune each internal bolts and nuts of it using some existent
>>> >> CONFIG_something. So, besides selecting the right files, it also needs
>>> >> the
>>> >> right CONFIGs
>>> >
>>> > Understand. But is there a way to also get the config files onto
>>> Microchip
>>> > Studio? OR are these config files temporary (/tmp for example) and not
>>> > physical
>>> > config files. Just a quick workflow I imagine: configure the NuttX
>>> build
>>> > for a
>>> > specific target (say, avr32dev1) like we typically do on Cygwin.
>>> >
>>> > The ./tools/configure.sh -c avr32dev:nsh doesn't fail. Perhaps there's
>>> a
>>> > way to
>>> > employ a tool to recurse through the NuttX codebase and copy the C
>>> files
>>> > and
>>> > config files - assuming a default configuration? But if I have a rough
>>> idea
>>> > of
>>> > the structure (and where to look for these file and their target
>>> > destination for
>>> > pickup), I can help whip up something quick and dirty as a proof of
>>> > concept.
>>> >
>>>
>>> At root of nuttx/ you will find a .config with all CONFIG_ selected.
>>>
>>> But again, I think we can avoid this tortuous path and fix the CMake
>>> or Makefile to build on Windows.
>>>
>>> BTW, could you please submit a PR with yours CMakefiles to AVR32? I
>>> want to test it here too.
>>>
>>> > I can also imagine this: I haven't tried this so far but I'm sure
>>> Microchip
>>> > Studio is powered by Visual Studio. Its project configuration is listed
>>> > here
>>> > [1], for example. I was just exploring to evaluate/gauge if we can
>>> generate
>>> > the
>>> > cproj file at all. Just thoughts so far.
>>> >
>>> > In essence, I wanted to check with you if CMake/GNU Make do something
>>> with
>>> > the
>>> > build that might otherwise be tricky to achieve using just Microchip
>>> > Studio?
>>> > Especially, on the Windows environment?
>>> >
>>> > Edit: I just ran `make -n' within nuttxspace/nuttx after configuring
>>> the
>>> > build
>>> > for avr32dev1. Oh, it such a long recipe! :) I understand it can be
>>> tricky.
>>> > I haven't read the echo to its entirely.
>>> >
>>>
>>> You can run "make V=1" to see all files been compiled and flag
>>> parameters.
>>>
>>> >> Yes, you can git checkout an old version tag (i.e 7.x or 8.x) of nuttx
>>> >> and
>>> >> also the same version of apps.
>>> >
>>> > Understand.
>>> >
>>> >> Nice! Probably you will see something coming from serial. Also you can
>>> > enable
>>> >> the Debug to print the ABC... letter of each stage of the early boot
>>> > process.
>>> >> Similar to old days of LILO bootloader of Linux.
>>> >
>>> > Very nice. I will enable Debug to check this.
>>> >
>>>
>>> Best Regards,
>>>
>>> Alan
>>>
>>

Reply via email to