I just pushed a change that will make this error message better.

"fatal: Cannot instantiate an abstract SimObject (system.dev)" is what the
error now says :).

See https://gem5-review.googlesource.com/c/public/gem5/+/59049

Cheers,
Jason

On Fri, Apr 22, 2022 at 8:57 AM Jason Lowe-Power <ja...@lowepower.com>
wrote:

> Hello,
>
> I believe the problem is that gem5 tries to do too much automatically for
> you! gem5 automatically creates a lot of the constructor/destructor codes.
> Given all of this hidden/automatic code generation, it's difficult to know
> exactly what's going wrong (for both you and for us).
>
> That said, I think the problem is that `PioDevice` is an abstract
> SimObject, not a concrete SimObject. This may work if you instead use the
> `DmaDevice`.
>
> Cheers,
> Jason
>
> On Thu, Apr 21, 2022 at 1:58 PM Raghu Shankar via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> By adding a PioDevice() to my version of two_level.py configuration
>> script, I get this error
>>
>>
>>
>> TypeError: _m5.param_PioDevice.PioDeviceParams: No constructor defined!
>>
>> And checking io_device.cc the constructor looks empty
>>
>>
>>
>> Any help please? Thanks
>>
>>
>>
>> *Details:*
>>
>>
>>
>> Traceback (most recent call last):
>>   File "<string>", line 1, in <module>
>>   File "build/X86/python/m5/main.py", line 455, in main
>>     exec(filecode, scope)
>>
>>
>>   File "/home/raghu/gem5/configs/learning_gem5/part1/two_level.py", line
>> 187, in <module>
>>     m5.instantiate()
>>   File "build/X86/python/m5/simulate.py", line 116, in instantiate
>>
>>   File "build/X86/python/m5/SimObject.py", line 1790, in createCCObject
>>     self.getCCParams()
>>   File "build/X86/python/m5/SimObject.py", line 1720, in getCCParams
>>     cc_params = cc_params_struct()
>>
>> TypeError: _m5.param_PioDevice.PioDeviceParams: No constructor defined!
>>
>>
>>
>>
>>
>> *Io_device.cc*
>>
>> include "dev/io_device.hh"
>>
>> #include "base/trace.hh"
>> #include "debug/AddrRanges.hh"
>> #include "sim/system.hh"
>>
>> namespace gem5
>> {
>>
>> PioDevice::PioDevice(const Params &p)
>>     : ClockedObject(p), sys(p.system), pioPort(this)
>> {}
>>
>> PioDevice::~PioDevice()
>> {
>> }
>>
>>
>> _______________________________________________
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to