mirror of
https://github.com/livingcomputermuseum/UniBone.git
synced 2026-02-26 08:44:18 +00:00
Cleanup
This commit is contained in:
@@ -360,7 +360,7 @@ priority_request_c *unibusadapter_c::request_activate_lowest_slot(unsigned level
|
||||
Is implemented on ARM as just 2 opcodes: rbit (bit reverse), clz (count number of leading zeros)
|
||||
VERY FAST (without sorting list)
|
||||
*/
|
||||
// Must run under pthread_mutex_lock(&requests_mutex);
|
||||
// Must run under pthread_mutex_lock(&);
|
||||
priority_request_level_c *prl = &request_levels[level_index];
|
||||
priority_request_c *rq;
|
||||
|
||||
@@ -591,11 +591,12 @@ void unibusadapter_c::DMA(dma_request_c& dma_request, bool blocking, uint8_t uni
|
||||
// NO wait for PRU signal, instead busy waiting. CPU thread blocked.
|
||||
// Reason: SPEED. CPU does high frequency single word accesses.
|
||||
bool completed = false;
|
||||
// ARM_DEBUG_PIN1(1); // CPU20 performace
|
||||
do {
|
||||
// CPU thread is now spinning
|
||||
// wait until CPU access scheduled and processed on PRU
|
||||
// in parallel, other device threads call DMA()
|
||||
pthread_mutex_lock(&requests_mutex);//&dma_request.complete_mutex);
|
||||
pthread_mutex_lock(&requests_mutex);
|
||||
dma_request_c *activereq = dynamic_cast<dma_request_c *>(prl->active);
|
||||
//if (activereq == &dma_request)
|
||||
// printf("a\n") ;
|
||||
@@ -610,6 +611,7 @@ void unibusadapter_c::DMA(dma_request_c& dma_request, bool blocking, uint8_t uni
|
||||
}
|
||||
pthread_mutex_unlock(&requests_mutex);//&dma_request.complete_mutex);
|
||||
} while (!completed);
|
||||
//ARM_DEBUG_PIN1(0); // CPU20 performace
|
||||
|
||||
} else if (blocking) {
|
||||
pthread_mutex_lock(&dma_request.complete_mutex) ;
|
||||
|
||||
@@ -348,6 +348,8 @@ static statemachine_state_func sm_dma_state_99() {
|
||||
PRU2ARM_INTERRUPT
|
||||
;
|
||||
}
|
||||
// PRU_DEBUG_PIN0_PULSE(50) ; // CPU20 performace
|
||||
|
||||
return NULL; // now stopped
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="cdt.managedbuild.toolchain.gnu.cross.base.632390496">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.cross.base.632390496" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.cross.base.632390496" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="cdt.managedbuild.toolchain.gnu.cross.base.632390496.2116398372" name="/" resourcePath="">
|
||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.base.1266739700" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.base">
|
||||
<option id="cdt.managedbuild.option.gnu.cross.prefix.179204763" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix"/>
|
||||
<option id="cdt.managedbuild.option.gnu.cross.path.1176568280" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.746346436" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
|
||||
<builder id="cdt.managedbuild.builder.gnu.cross.1144456450" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.279889652" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
|
||||
<option id="gnu.c.compiler.option.preprocessor.def.symbols.951239867" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="ARM=1"/>
|
||||
</option>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1168344921" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.387521793" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
|
||||
<option id="gnu.cpp.compiler.option.preprocessor.def.2064561285" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="ARM=1"/>
|
||||
</option>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1939618137" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.31695445" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.80061640" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1337249753" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.112971794" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.1233905831" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1510940605" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="10.02_devices.null.40583966" name="10.02_devices"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.cross.base.632390496;cdt.managedbuild.toolchain.gnu.cross.base.632390496.2116398372;cdt.managedbuild.tool.gnu.cross.c.compiler.279889652;cdt.managedbuild.tool.gnu.c.compiler.input.1168344921">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.cross.base.632390496;cdt.managedbuild.toolchain.gnu.cross.base.632390496.2116398372;cdt.managedbuild.tool.gnu.cross.cpp.compiler.387521793;cdt.managedbuild.tool.gnu.cpp.compiler.input.1939618137">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>10.02_devices</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
<project>10.01_base</project>
|
||||
<project>90_common</project>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -11,6 +11,9 @@
|
||||
serial = 177560 ; base addr of DL11
|
||||
|
||||
|
||||
.=0 ; incomplete
|
||||
jmp @#start
|
||||
|
||||
.=2000
|
||||
|
||||
start:
|
||||
|
||||
@@ -24,7 +24,6 @@ p powerswitch 1 # power on, now in "load" state
|
||||
p image xxdp25.rl02 # mount image file
|
||||
p runstopbutton 1
|
||||
|
||||
|
||||
m lp /root/10.02_devices/3_test/dl11w/ZDLDI0.BIN
|
||||
.print Now start ZDLD at address 200
|
||||
.print Or boot XXDP from DL, then execute "R ZDLDI0"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# full memory emulation
|
||||
m
|
||||
pwr
|
||||
.wait 5000 # wait for PDP-11 to reset through ACLO/DCLO
|
||||
.wait 2000 # wait for PDP-11 to reset through ACLO/DCLO
|
||||
m # emulate full memory
|
||||
.wait 1000
|
||||
lp zkma.ptap # load into memory
|
||||
|
||||
41
10.03_app_demo/5_applications/cpu/cpu20rt11.cmd
Normal file
41
10.03_app_demo/5_applications/cpu/cpu20rt11.cmd
Normal file
@@ -0,0 +1,41 @@
|
||||
# inputfile for demo to select a rl1 device in the "device test" menu.
|
||||
# Read in with command line option "demo --cmdfile ..."
|
||||
dc # device menu
|
||||
|
||||
# en dl11 # use emulated serial console
|
||||
# en kw11
|
||||
|
||||
pwr # reboot PDP-11
|
||||
.wait 3000 # wait for PDP-11 to reset
|
||||
m i # install max UNIBUS memory
|
||||
|
||||
# Deposit bootloader into memory
|
||||
m ll dl.lst
|
||||
|
||||
en rl # enable RL11 controller
|
||||
|
||||
# mount RT11 v5.5 in RL02 #0 and start
|
||||
en rl0 # enable drive #0
|
||||
sd rl0 # select
|
||||
p emulation_speed 10 # 10x speed. Load disk in 5 seconds
|
||||
# set type to "rl02"
|
||||
p runstopbutton 0 # released: "LOAD"
|
||||
p powerswitch 1 # power on, now in "load" state
|
||||
p image rt11v5.5_games_34.rl02 # mount image file with test pattern
|
||||
p runstopbutton 1 # press RUN/STOP, will start
|
||||
|
||||
.print Disk drive now on track after 5 secs
|
||||
.wait 6000 # wait until drive spins up
|
||||
p # show all params of RL1
|
||||
|
||||
en cpu20
|
||||
sd cpu20
|
||||
|
||||
.print RL drives ready.
|
||||
.print RL11 boot loader installed.
|
||||
.print Start 10000 to boot from drive 0, 10010 for drive 1, ...
|
||||
.print Reload with "m ll"
|
||||
.print Start CPU20 with "p r 1"
|
||||
|
||||
|
||||
|
||||
4
10.03_app_demo/5_applications/cpu/cpu20rt11.sh
Normal file
4
10.03_app_demo/5_applications/cpu/cpu20rt11.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
# start RT11 5.5 with "demo" application
|
||||
cd ~/10.03_app_demo/5_applications/cpu
|
||||
~/10.03_app_demo/4_deploy/demo --verbose --cmdfile cpu20rt11.cmd
|
||||
|
||||
3
10.03_app_demo/5_applications/cpu/cpu20xxdp_dl0.sh
Normal file
3
10.03_app_demo/5_applications/cpu/cpu20xxdp_dl0.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
# start xxdp with "demo" application
|
||||
cd ~/10.03_app_demo/5_applications/cpu
|
||||
~/10.03_app_demo/4_deploy/demo --verbose --cmdfile xxdp.cmd
|
||||
47
10.03_app_demo/5_applications/cpu/xxdp.cmd
Normal file
47
10.03_app_demo/5_applications/cpu/xxdp.cmd
Normal file
@@ -0,0 +1,47 @@
|
||||
# inputfile for demo to select a rl1 device in the "device test" menu.
|
||||
# Read in with command line option "demo --cmdfile ..."
|
||||
dc # "device + cpu" test menu
|
||||
|
||||
# first, make a serial port. Default ist
|
||||
sd dl11
|
||||
# p p ttyS2 # use "UART2 connector
|
||||
#en dl11
|
||||
#en kw11
|
||||
|
||||
|
||||
pwr
|
||||
.wait 3000 # wait for PDP-11 to reset
|
||||
m i # install max UNIBUS memory
|
||||
|
||||
# Deposit bootloader into memory
|
||||
m ll dl.lst
|
||||
|
||||
en rl # enable RL11 controller
|
||||
|
||||
# mount XXDP disk in RL02 #0 and start
|
||||
en rl0 # enable drive #0
|
||||
sd rl0 # select
|
||||
p emulation_speed 10 # 10x speed. Load disk in 5 seconds
|
||||
# set type to "rl02"
|
||||
p runstopbutton 0 # released: "LOAD"
|
||||
p powerswitch 1 # power on, now in "load" state
|
||||
p image xxdp25.rl02 # mount image file with test pattern
|
||||
p runstopbutton 1 # press RUN/STOP, will start
|
||||
|
||||
.print Disk drive now on track after 5 secs
|
||||
.wait 5000 # wait until drive spins up
|
||||
p # show all params of RL1
|
||||
|
||||
en cpu20
|
||||
sd cpu20
|
||||
|
||||
init
|
||||
|
||||
# start from addr 0
|
||||
# p run 1
|
||||
|
||||
.print RL drives ready.
|
||||
.print RL11 boot loader installed.
|
||||
.print Start CPU20 with "p r 1"
|
||||
.print Start from 0 or 10000 to boot from drive 0, 10010 for drive 1, ...
|
||||
.print Reload with "m ll"
|
||||
BIN
10.03_app_demo/5_applications/cpu/xxdp25.rl02
Normal file
BIN
10.03_app_demo/5_applications/cpu/xxdp25.rl02
Normal file
Binary file not shown.
Reference in New Issue
Block a user