关于海思HI3559AV100及SDK的一些使用经验

qDefineFlag(bool, dump, true, "dump status register only");
qDefineFlag(uint32, addr, 0, "register offset");
qDefineFlag(uint32, value, 0, "if write mode was enabled, this is the value to write");
qDefineFlag(bool, relative, true, "use offset");
uint32_t regaddr(uint32_t pa_offset, uint32_t addr, uint32_t reg_addr)
{
return addr - pa_offset + reg_addr;
}
void dump_mipi_rx_regs(int mem_fd, int phy, int chn)
IKRTV
{
size_t len = 0x10000;
uint32_t offset = 0x11a40000;
uint32_t pa_offset = offset & ~(sysconf(_SC_PAGE_SIZE) - 1);
printf("mipi rx, pa_offset = %08x\n", pa_offset);
uint32_t* base = (uint32_t*)mmap(NULL, len + offset - pa_offset, PROT_READ | PROT_WRITE,
MAP_SHARED, mem_fd, pa_offset);
if (base) {
uint32_t pkt_intr_st = 0x1060 + 0x1000 * chn;
uint32_t pkt_intr_st2 = 0x1070 + 0x1000 * chn;
uint32_t frm_intr_st = 0x1080 + 0x1000 * chn;
printf("PKT_INTR_ST :\033[31m%08x\033[0m\n", *(base + regaddr(pa_offset, offset, pkt_intr_st) / 4));        printf("PKT_INTR_ST2:\033[31m%08x\033[0m\n", *(base + regaddr(pa_offset, offset, pkt_intr_st2) / 4));        printf("FRM_INTR_ST :\033[31m%08x\033[0m\n", *(base + regaddr(pa_offset,
offset, frm_intr_st) / 4));        //
munmap((void*)base, len + offset - pa_offset);
}
}
void process_read(int mem_fd, uint32_t addr)
if (qFlag(relative)) {
addr += 0x11a40000;
}
size_t len = 4;
uint32_t offset = addr;
老化仪
uint32_t pa_offset = offset & ~(sysconf(_SC_PAGE_SIZE) - 1);
printf("pa_offset = %08x\n", pa_offset);
uint32_t* base = (uint32_t*)mmap(NULL, len + offset - pa_offset, PROT_READ | PROT_WRITE,
MAP_SHARED, mem_fd, pa_offset);
if (base) {
printf("Reg:%08x, Value:%08x\n", addr, *(base + regaddr(pa_offset, addr, 0) / 4));
//
munmap((void*)base, len + offset - pa_offset);
高频预热机
}
}
橡胶硬度
void process_write(int mem_fd, uint32_t addr, uint32_t value)
{
if (qFlag(relative)) {
addr += 0x11a40000;
}
size_t len = 4;
uint32_t offset = addr;
uint32_t pa_offset = offset & ~(sysconf(_SC_PAGE_SIZE) - 1);
printf("pa_offset = %08x\n", pa_offset);
uint32_t* base = (uint32_t*)mmap(NULL, len + offset - pa_offset, PROT_READ | PROT_WRITE,
MAP_SHARED, mem_fd, pa_offset);
if (base) {
*(base + regaddr(pa_offset, offset, 0) / 4) = value;
//
munmap((void*)base, len + offset - pa_offset);
}
}
int main(int argc, char** argv)
{
// usage
std::string usage = std::string() + "\n" +
argv[0] + "--dump=1, dump mipi_rx status registers\n" +
argv[0] + "--dump=0 --wr=1 --addr=0x1060, read the mipi_rx register\n" +
argv[0] + "--dump=0 --wr=1 --addr=0x11a41060 --relative=false, read any register\n" +
无烟抛光剂

本文发布于:2024-09-22 01:34:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/140053.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:电镀   硬度   无烟   处理   丁腈橡胶   抛光剂
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议