1、#EMBEDDEDOSSUMMITArm core+DSP Co-simulationWith customized QEMU in ZephyrHake Huang,NXP SemiconductorsH?How a simulator can benefit?A brief intro to QEMU?SOC co-simulator design pattern?i.MX RT595 QEMU co-simulatorHow a simulator can benefitSimulator BenefitsTypicalWith SimulatorExpertAPPSApps engin
2、eerOS/FWSW application engineerSW DriverEmbedded SW engineerSOCRegister LayerSOCengineerSW DriverOS/FWAPPSRegister LayerSOCHW DedicatedZephyrA brief intro to QEMU QEMU is a machine emulator:it can run an unmodified target operating system(such as Windows or Linux)and all its applications in a virtua
3、l machine QEMU is made of several subsystems:CPU emulator(currently x86,PowerPC,ARM,Sparc,RISC-V,XTENSA etc.,)Emulated devices(e.g.VGA display,16450 serial port,PS/2 mouse and keyboard,IDE hard disk NE2000 network card,.)Generic devices(e.g.block devices,character devices,network devices)used to con
4、nect the emulated devices to the corresponding host devices Machine descriptions(e.g.PC,PowerMac,Sun4m)instantiating the emulated devices Debugger User interfaceGuest InstructionsHost InstructionsPicture source Ref1Object file is parsed to get its symbol table,itsrelocations entries and its code sec
5、tion.The micro operations are located in the code section using the symbol table.The relocations of each micro operations are examined to get the number of constant parameters.A memory copy in C is generated to copy the micro operation code.For some hosts such as ARM,constants must bestored near the
6、 generated code because they are accessed with PC relative loads with a small displacement.Key Concepts for Full-system emulationCo-simulator designCore A processCore B processSOCCore ACore Binter-core inter-operation?1.A real time IPC2.Easy to expand to complex scenario D-Bus https:/www.freedesktop