genode/ports/run/gdb_monitor_target_config.run
Christian Prochaska 93faa9a36f Config option for GDB monitor RAM preservation
This patch allows to configure the amount of RAM that GDB monitor should
preserve for itself. The configuration syntax looks as follows:

<start name="gdb_monitor">
    <resource name="RAM" quantum="1G"/>
    <config>
        <target name="noux">
        <preserve name="RAM" quantum="2M"/>
        ...
    </config>
</start>

Fixes #190.
2012-04-23 15:32:22 +02:00

115 lines
2.3 KiB
Tcl

#
# \brief Test for providing a config file to the target
# \author Christian Prochaska
# \date 2012-04-16
#
#
# Build
#
build {
core init
drivers/timer drivers/uart
app/gdb_monitor
test/gdb_monitor_target_config
}
create_boot_directory
#
# Generate config
#
set config {
<config verbose="yes">
<parent-provides>
<service name="ROM"/>
<service name="RAM"/>
<service name="IRQ"/>
<service name="IO_MEM"/>
<service name="IO_PORT"/>
<service name="CAP"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="SIGNAL"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<start name="timer">
<resource name="RAM" quantum="512K"/>
<provides> <service name="Timer"/> </provides>
</start>
<start name="uart_drv">
<resource name="RAM" quantum="1M"/>
<provides> <service name="Terminal"/> </provides>
<config>
<policy label="gdb_monitor" uart="1"/>
</config>
</start>
<start name="gdb_monitor">
<resource name="RAM" quantum="4M"/>
<config>
<target name="test-gdb_monitor_target_config">
<config>
<test_config_subnode/>
</config>
</target>
<preserve name="RAM" quantum="2M"/>
</config>
</start>
</config>
}
install_config $config
#
# Boot modules
#
# generic modules
set boot_modules {
core init timer
ld.lib.so libc.lib.so libc_log.lib.so libc_lock_pipe.lib.so libc_terminal.lib.so
uart_drv
gdb_monitor test-gdb_monitor_target_config
}
build_boot_image $boot_modules
#
# Execute test case
#
#
set local_port 5555
# qemu config
append qemu_args " -m 128 -nographic "
# connect comport 0 to stdio
append qemu_args " -serial mon:stdio "
# connect comport 1 with TCP port $local_port
append qemu_args " -serial chardev:uart "
append qemu_args " -chardev socket,id=uart,port=$local_port,host=localhost,server,nowait "
run_genode_until {.*Remote debugging using /dev/terminal.*} 30
puts "GDB monitor is up, starting GDB in a new terminal"
# sequence of GDB commands to execute at startup
set gdb_cmds ""
append gdb_cmds "-ex \"target remote localhost:$local_port\" "
# continue execution
append gdb_cmds {-ex "c" }
exec [terminal] -e "[gdb] bin/test-gdb_monitor_target_config $gdb_cmds" &
interact
# vi: set ft=tcl :