mmap:python整数过大无法转换为c长整型
我的问题背景是,我正在使用Beaglebone Black的PRU(可编程实时单元)来往内存里写东西,然后用在ARM上运行的Python来读取这些数据。我正在按照一个指南来访问内存。
当我运行Python代码时,出现了以下错误:
Traceback (most recent call last):
File “ddr_write.py”, line 30, in
ddr_mem = mmap.mmap(f.fileno(), ddr_filelen, offset=ddr_offset) # mmap the right area
OverflowError: Python int too large to convert to C long
ddr_filelen
的值是0x10040000
,而ddr_offset
的值是0x89980000
我的Python版本是2.7.3
1 个回答
0
你可能在使用一个32位的平台,这种平台的最大值是2,147,483,647,换算成十六进制就是0x7fffffff。而你提到的值ddr_offset = 0x89980000,换算成十进制是2,308,440,064。这个值超出了32位平台能处理的最大范围,所以你会看到那个错误。