您尚未登录。

#1 Re: 8051/STC8/AT89C51/N76E003 » 迪文600M的双核8051单片机怎么回事? » 2023-11-12 11:07:40

迪文屏的目标非常清晰,就是装置面板,不可能跑个浏览器或者播放个视频啥的,屏端就是叠贴图的一个组态执行引擎。UI全靠pc端组态开发软件。
这个市场还是蛮大的,所以单屏成本能缩缩缩肯定更有竞争力,走自研芯片放量这条路很清楚,跑这个逻辑引擎基本上小型MCU是必然,
整体架构设计清晰高效的话,51就完全能跑,自实现51指令集较容易,也不需要cache和流水线,0.5MIPS/MHz都完全没问题。也不需要买arm授权。
集成屏的行场控制器后,按市场量来算的话,做到1元级别估计也是有可能的。

#2 Re: 全志 SOC » T113同时启用RISC-V和A7双核的尝试 » 2023-11-03 14:05:07

验证有效
RISCV启动至少需要如下步骤:
1.CCU配置 RISC-V_CFG 0x02001000+0x0D0C Bus Gating Reset Register = 0x00010001(RISCV_CFG_RST=DeAssert, RISC-V_CFG_GATING=Pass)
2.R_CPUCFG bit0 DeAssert(Disassembly from brandy SPL in SDK),此步骤貌似并没有影响

证明:
=> md 0x06010050
06010050: fefbffee 000000ff 00000000 00000000    ................
06010060: 00000000 00000000 00000000 00000000    ................
06010070: 00000000 00000000 00000000 00000000    ................
06010080: 00000000 00000000 00000000 00000000    ................
06010090: 00000000 00000000 00000000 00000000    ................
060100a0: 00000000 00000000 00000000 00000000    ................
060100b0: 00000000 00000000 00000000 00000000    ................
060100c0: 00000000 00000000 00000000 00000000    ................
060100d0: 00000000 00000000 00000000 00000000    ................
060100e0: 00000000 00000000 00000000 00000000    ................
060100f0: 00000000 00000000 00000000 00000000    ................
06010100: 00000000 00000000 00000000 00000000    ................
06010110: 00000000 00000000 00000000 00000000    ................
06010120: 00000000 00000000 00000000 00000000    ................
06010130: 00000000 00000000 00000000 00000000    ................
06010140: 00000000 00000000 00000000 00000000    ................
=>
RETIRE_PC0_REG 有运行过的PC位置

#3 Re: 全志 SOC » T113同时启用RISC-V和A7双核的尝试 » 2023-11-03 11:46:18

弄了一个T113-i的实物,找到了一些线索,
官方SDK里有个叫做 brandy 的二级boot(ROM算一级的话),里面有闭源的DDR初始化代码啥的,在./spl-pub/board/t113_i/ 中
libsun8iw20p1_fes.a
libsun8iw20p1_nand.a
libsun8iw20p1_sboot.a
libsun8iw20p1_sdcard.a
libsun8iw20p1_spinor.a
实际是个ELF的object文件,
看下符号表,其中有
sunxi_assert_arisc
sunxi_deassert_arisc
怀疑有关启动RISCV

反汇编结果
Disassembly of section .text.sunxi_deassert_arisc:

00000000 <sunxi_deassert_arisc>:
   0:    b507          push    {r0, r1, r2, lr}
   2:    4808          ldr    r0, [pc, #32]    ; (24 <sunxi_deassert_arisc+0x24>)
   4:    f7ff fffe     bl    0 <sunxi_deassert_arisc>
   8:    4a07          ldr    r2, [pc, #28]    ; (28 <sunxi_deassert_arisc+0x28>)
   a:    6813          ldr    r3, [r2, #0]
   c:    9301          str    r3, [sp, #4]
   e:    9b01          ldr    r3, [sp, #4]
  10:    f043 0301     orr.w    r3, r3, #1
  14:    9301          str    r3, [sp, #4]
  16:    9b01          ldr    r3, [sp, #4]
  18:    2000          movs    r0, #0
  1a:    6013          str    r3, [r2, #0]
  1c:    b003          add    sp, #12
  1e:    f85d fb04     ldr.w    pc, [sp], #4
  22:    bf00          nop
  24:    00000030     .word    0x00000030
  28:    07000400     .word    0x07000400

是将 0x07000400 寄存器[0:0]置了一个 'b1
这个寄存器在 UserManual 中说是位于 APBS0 域的 R_CPUCFG 区,但功能未说明,估计很可能得用这个,
其他还有 R_PPU R_PRCM R_TIMER R_TWD 貌似是同组,同样,UserManual 中没有一丁点解释,
如果关键功能与此未公开解释的部分有关,则会无解,只有原厂知道了

#4 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 国产agm-FPGA使用过程遇到的一个mcu硬核的问题 » 2023-10-28 22:18:01

请补习现代计算机组成原理。
现代处理器执行指令的速度一般都能超过主频,也就是一个clock拍子会吃进多个指令,
比如1.7MIPS/MHz的机器,主频200MHz,则执行指令的速度是(200*1.7)MIPS。
访问IO并不是核心指令那么快的速度,IO访问需要CPU经过片上互联到控制器,
ARM体系的AHB-APB经由2个桥ACK回来大概就是小几个us。

#5 Re: Cortex M0/M3/M4/M7 » 函数里将一个错误的指针,指向的变量,改变了,结果执行完该函数后,直接退出该函数的上一层函数了,没有执行接下来的语句。 » 2023-10-28 09:04:46

曾经做过编译器,栈被破坏应该是很明显
猜测:栈变量q恰巧在栈里存返回地址的后面,q-1 正好是返回地址的低字节,被幅值为0,则很有可能会将原来的返回地址变小一点,则本次返回地址会变成更小一点地址的位置。

#6 Re: Cortex M0/M3/M4/M7 » 自制三菱PLC-(暂支持27条基本指令,平台:cortex-m3) » 2023-10-27 14:28:19

我以前做过很多PLC相关的项目。
FBD图形组态工具,完整IEC61131编译器,直接机器码/自定义指令虚拟机,
机器端解释器,机器端runtime动态加载器等等,另外还有自实现的profinet等
有兴趣合作的可以联系我

#7 Re: 全志 SOC » 荔枝派zero 插入usb设备后无反应(摄像头,u盘都没反应) » 2023-10-27 09:01:21

带着载荷量下电压,是不是电源虚了,推不动
USB有插拔中断,找到内核代码加入打印,插拔看看是否有,有则是软件侧问题,无则是硬件侧问题。

#10 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 单片机有8个信号输入,想通过上位机配置这8个信号与、或操作,该如何实现? » 2023-10-12 09:31:56

做法的决定,要看需求。
如果可变逻辑中可以转变成单线顺序计算,则可以以“【INx】【运算符enum】【INx】【运算符enum】。。。”形式下发给单片机运行,执行机构以循环就可以算结果。较为简单。
如果可变逻辑中包含类似(INx + INx) * (INx + INx)这种计算,这个在编译器领域叫做未决表达式,计算中途需要临时存储,需要分配寄存器或临时栈变量。这种较为复杂需要编译行为,最好在上机做,要有临时变量的表示手段,需要以类似“【INx】【运算符enum】【INx】【变量x】。。。【变量x】【运算符enum】【变量x】“形式下发单片机运行,执行机需要有几个变量槽位。

#11 Re: Cortex M0/M3/M4/M7 » 有没大佬在STM32H7上跑通了Linux » 2023-10-12 09:05:03

M7 属于 MCU,没有 MMU,不适合运行标准 Linux。
uclinux或者其他阉割版本可以,但是这种做法早都过时了。
您的情况可以考虑找一种 rtos 然后配上协议栈。商业rtos一般都有可靠的协议栈。
如果是free类的rtos,一般都是配的三方tcp库,比如lwip,lwip这个建议不要用到1000套以上产品。最好自研tcp。

#12 Re: 全志 SOC » [小爱mini音响 R16 ] mtdblock.c文件的驱动是否存在逻辑BUG? » 2023-10-11 08:51:06

不存在逻辑bug。因为函数参数指定了写入的位置,如果函数内部私自移开写位置,则为违抗指令。返回值很难描述变通行为的细节。

#13 Re: 全志 SOC » T113同时启用RISC-V和A7双核的尝试 » 2023-10-10 11:49:12

是不是先设定 RISCV_CFG 的 StartAddress 然后撒开复位的?
试试 将程序代码放在 RSCV_BROM 0x0600_0000-0x0600_FFFF 64KB,RV核视图是 0x0000_0000-0x0000_FFFF
然后 StartAddress 为默认 0x0000 这样启动,看能行吗

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn