Things to Know before you start

step 1: BUILD

scons build/X86/gem5.opt

step 2: RUN

build/X86/gem5.opt --debug-flags=HelloExample,DRAM configs/learning_gem5/part2/hello_goodbye.py

My 2 cents:
1. You need to put your configs in configs/ dir 2. Your SimObjects* should be defined in the src/ and there should be a .py for your SimObject that defines params, and header file. 3. You should add/include DEBUG flags in the SConsScript along side adding SimObject’s .cc and .py 4. You’ll also need to build your stuff

step 3: Things to know about the Params

__all__ = ['Param', 'VectorParam',
           'Enum', 'Bool', 'String', 'Float',
           'Int', 'Unsigned', 'Int8', 'UInt8', 'Int16', 'UInt16',
           'Int32', 'UInt32', 'Int64', 'UInt64',
           'Counter', 'Addr', 'Tick', 'Percent',
           'TcpPort', 'UdpPort', 'EthernetAddr',
           'IpAddress', 'IpNetmask', 'IpWithPort',
           'MemorySize', 'MemorySize32',
           'Latency', 'Frequency', 'Clock', 'Voltage', 'Current', 'Energy',
           'NetworkBandwidth', 'MemoryBandwidth',
           'AddrRange',
           'MaxAddr', 'MaxTick', 'AllMemory',
           'Time',
           'NextEthernetAddr', 'NULL',
           'MasterPort', 'SlavePort',
           'VectorMasterPort', 'VectorSlavePort']

Building your Binary against PseudoInst

We should first proceed by adding a custom instruction behavior something like the following [commit](https://github.umn.edu/hegde031/gem5/commit/3611fd31150533cdc6958aa808d6ddf86f89224d Not that easy)

Building MicroOps

[1]. Ensure you have removed DM5OP_ADDR [2]. Do a make in the util/m5/ dir as:

Make -f Makefile.x86

[3]. Now build your binary by linking the object file the above file creates Please note, you’ll need to create a static binary.

gcc -static -I./include -o rrx hello.c util/m5/m5op_x86.o

Running under different conditions

  1. DarknetYOLO: location on ButtonBox: ~/g5/axl/darknet_play.
    • Changes
    • From within the directory make []