未验证 提交 f6847af0 编写于 作者: C chenhy0106 提交者: GitHub

[libcpu/riscv/c906] fix "next_asid" type error (#7031)

MAX_ASID最大为0x10000,在next_asid==MAX_ASID时进入下一个generation。因此next_asid不能只有16位,否则将不能进入下一个generation。修改rt_uint16_t为rt_uint32_t。
上级 95fea2f1
...@@ -42,7 +42,7 @@ volatile __attribute__((aligned(4 * 1024))) ...@@ -42,7 +42,7 @@ volatile __attribute__((aligned(4 * 1024)))
rt_ubase_t MMUTable[__SIZE(VPN2_BIT)]; rt_ubase_t MMUTable[__SIZE(VPN2_BIT)];
static rt_uint8_t ASID_BITS = 0; static rt_uint8_t ASID_BITS = 0;
static rt_uint16_t next_asid; static rt_uint32_t next_asid;
static rt_uint64_t global_asid_generation; static rt_uint64_t global_asid_generation;
#define ASID_MASK ((1 << ASID_BITS) - 1) #define ASID_MASK ((1 << ASID_BITS) - 1)
#define ASID_FIRST_GENERATION (1 << ASID_BITS) #define ASID_FIRST_GENERATION (1 << ASID_BITS)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册