- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个结构:
Struct _size1 {
union{
short a;
struct {
char b;
char c;
}d;
struct {
char x;
char y;
}z;
};
union{
short a1;
struct {
char b1;
char c1;
}d1;
struct {
char x1;
char y1;
}z1;
};
}size1;
和:
Struct _size2 {
short num; //2 bytes
short num2; //2 bytes
short num3; //2 bytes
size1 st_size; //4 bytes
}size2;
sizeof(size1) = 4;sizeof(size2) = 12;
对于 size2,我尝试获取的大小是 10。
它在 num3 和 st_size 之间添加两个字节的填充。Microblaze Compiler 不支持 Pragma Pack
我正在尝试使用属性((packed)),但没有取得任何成功...
Struct _size2 {
short num; //2 bytes
short num2; //2 bytes
short num3; //2 bytes
size1 st_size; //4 bytes
}size2 __attribute__((packed));
我不确定出了什么问题,或者这是否有效。
谢谢
最佳答案
您正在使用 unsigned int
位字段类型,在 gcc/Microblaze 上为 4 个字节。
使用 gcc 实现定义的 unsigned Short
位字段类型,使 gcc/Microblaze 的大小为 2 个字节。
关于c++ - Xilinx Microblaze 结构填充/包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833534/
我有一个简单的 microblaze 设置,带有两个 GPIO(按钮和开关)。我想处理两个设备的中断。 这是我当前的非工作代码。 #include #include #include #include
我想编写我的代码来处理 Microblaze 上的 TLB 未命中,当然还有页表等。这一切都在 OVPsim 上完成。 在我学习的过程中,我编写了这个小程序集来引用未映射的位置 (0x1000000)
我们可以使用 EDK 在 Microblaze C 编程中展开循环吗? 这是必需的,因为我需要更多性能。传统上,我的 C 代码将串行运行,因此使用一些编译器指令展开循环可以加速我的应用程序。 (例如,
当我对在 Microblaze 上运行的代码进行一些修改时,有时会发现遵循相同路径的代码执行在运行时存在很大差异。为了说明我所说的相同路径的真正含义,请举个例子, if ( condition )
我想构建一个可重定位的库(即除了局部变量之外什么都没有。我还想强制库的位置位于内存中的固定位置。我认为这必须在 makefile 中完成,但我很困惑我必须做什么才能强制将库加载到固定位置。这是使用 m
我正在使用运行 Linux(内核版本 3.0)的 Xililnx 开发板。板上配置了microblaze。 我的主机运行 Ubuntu 12.04 X86_64 并安装了工具链 (tools-4.1.
我有一个针对 MicroBlaze CPU 的“c”代码。 当我在 Eclipse + GCC 或 Visual Studio 中调试代码作为 c 程序时,我得到了我想要的结果。 然而,当我在目标上奔
用 Microblaze 创建计时器的最佳方法是什么,这将使我能够让它更类似于 delay_ms() 或 sleep() 中的函数更传统的脚本? 很容易,我可以像这样创建一个愚蠢的函数: void d
一年多来,我一直在使用 C++ 为 Microblaze 处理器开发嵌入式软件。我的设计并没有那么复杂,所以我没有使用该语言强大的、面向对象的特性。 一段时间以来,我一直在努力增强我的设计结构。为此,
我有两个结构: Struct _size1 { union{ short a; struct { char
我正在 microblaze xilinx 13.1 中实现 UART。我想将rx值存储在fifo中,这是使用VHDL中的xilinx ipcore实现的。 我收到的字节是这样的, while(1)
我有一个用 C 编写的应用程序,用于 Xilinx Microblaze核。然而,性能并不是我想要的,所以我正在考虑重写汇编中的一些核心功能。我无法弄清楚如何让 Xilinx Platform Stu
在 echo 示例中,我们有这个函数可以再次发送相同的数据包,以便回显数据,我想更改它以便发送固定数据,无论用户发送什么,所以我更改了这个: err = tcp_write(tpcb, p->
有没有人为 MicroBlaze 编写过多线程 C++ 应用程序? Xilinx 文档指出: The standard C library provided with EDK is not built
所以我在互联网上找不到比 microblaze 和 lwip 的 echo 程序更简单的例子,它对我来说工作正常,这里是他们的文件: 回声.c: /* * Copyright (c) 2009 Xi
我对汇编语言和 microblaze cpu 还很陌生,并且在中断处理工作方面遇到问题。 我被迫编写自己的启动和初始化例程。 (通常包含在 crt0 中的东西)我想我在分支到指定地址的中断处理程序时做
我想要实现的目标是使用户空间中的内存块可以通过 PCIe 直接由 FPGA 板中的 DMA 内核访问(不受内核的任何干扰)。 为此,我在用户空间中使用 posix_memalign() 在用户空间中分
我正在 for 循环中尝试 xil_printf() 并通过 uart 将其提供给 SendBuffer。如何打印字符而不是整数?它所打印的只是十六进制数... uint32_t IRAM; for(
我的团队正在使用 microblaze,但我们在 ip 堆栈方面遇到了一些问题。 我通常不是嵌入式程序员,但我想学习如何提供帮助。 有没有关于IP栈的教程?这些是什么?它们是如何编程的?如何解决 IP
我有一个用 C 语言编写的应用程序,带有 Xilinx Microblaze 内核的内联汇编。我的内联汇编有一个延迟任务。函数“_delay_loop_X_x”正好延迟处理器每个循环的 4 个周期。输
我是一名优秀的程序员,十分优秀!