导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. aozima
    3. 帖子
    • 资料
    • 关注 0
    • 粉丝 0
    • 我的积分 5968
    • 主题 4
    • 帖子 90
    • 最佳 4
    • 群组 0

    aozima 发布的帖子

    • 回复: 如何对arp广播风暴进行规避?

      为什么不能解决制造问题的人?

      发布在 Linux
      aozima
      aozima
    • 回复: t113-s3 tplayerdemo循环播放视频中,突然断电后,视频文件损坏

      播放是只读操作,检查是否哪里有误,在进行写操作。
      如果确实没有写也会坏,那就是EMMC的问题了,可以尝试换个型号对比。

      发布在 T Series
      aozima
      aozima
    • 回复: 发现论坛通知处一个显示异常

      好奇这BUG是怎么产生的。。

      发布在 灌水区
      aozima
      aozima
    • 回复: 双核t8100笔记本4G真机UBUNTU18.4编译内核error: Illegal instruction

      CPU要支持avx指令,是时候奖励自己1台新电脑了。

      $ cat /proc/cpuinfo | grep avx
      
      发布在 MR Series
      aozima
      aozima
    • 回复: D1-H千兆网络丢包问题

      对于以太网来说,这2个的表现都是不可接受的。

      建议先检查下硬件,或有没可能是测试电脑这边是使用了不稳定的WIFI?

      发布在 MR Series
      aozima
      aozima
    • 回复: G2D uboot阶段 logo 旋转不了?怎么办?

      @hy123456 boot阶段的显示基本是固定的,手动旋转好也不是不行😊

      发布在 Linux
      aozima
      aozima
    • 回复: 求证:riscv的计算与访存无法并行吗?

      @zhaodongyu 逻辑上看起来是的,实际上有预取,write buffer等特性存在,所以在计算时,访存已提前进行,或上条还未完成,不会等的。

      发布在 MR Series
      aozima
      aozima
    • 回复: 玄铁编译器bug

      编译器哪个版本?
      可以精简份最小代码出来?然后单独编译下这小段代码?

      发布在 MR Series
      aozima
      aozima
    • 回复: 求证:riscv的计算与访存无法并行吗?

      访存有专门的Load/Store指令,这样计算的指令都是直接基于寄存器的,更加简单些。

      发布在 MR Series
      aozima
      aozima
    • 回复: 100s 的tina 定时器精度只能到10ms,现在需要用gpio来模拟nec协议的红外发送,大家有什么好的建议吗?

      只需要模拟那个毫秒级的信号就行了吧,38K载波应该用PWM来实现。

      发布在 Linux
      aozima
      aozima
    • 回复: 【危险】内存越界却不报错

      @zhaodongyu 在 【危险】内存越界却不报错 中说:

      汇编文件里的test函数

      可以试着学下rust,不要用unsafe

      发布在 MR Series
      aozima
      aozima
    • 回复: 电信移动在http网页插广告,这是中间人攻击吗?

      先检查下路由器,确认是运营商插入的话,试试工信部电话好不好使。

      发布在 灌水区
      aozima
      aozima
    • 回复: 请问各位大佬,T113-S3 PE8~PE11口怎么设为JTAG?

      默认好像在PF https://github.com/xboot/xfel/issues/41

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 全志R128开发板来啦!RISC-V C906 + Arm M33有机结合,支持 Wi-Fi/BT

      买买买,前排支持!

      发布在 A Series
      aozima
      aozima
    • 回复: D1s-RTT2022纪念版应用分享

      每个独立的elf文件体积都很大,你看只有一句话的hello.elf,体积有34K,还不如20年前的VC6.0

      应该strip一下就小了

      发布在 MR Series
      aozima
      aozima
    • 回复: t113-s3开启多个串口dma问题

      DMA通道不够用了呗

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 选型需求有款设备,需要音频,1000m以太网,usb,要linux操作系统。 现在全志满足这些要求的,哪款芯片最便宜?

      好奇问下 要传递啥数据?必须要1000m以太网?

      发布在 MR Series
      aozima
      aozima
    • 回复: 请教大佬,有没有开源支持D1s SPINor RTOS系统的boot引导程序,可以直接跑RTOS系统那种!!!

      难不成D1s和F133的ddr参数不同?

      有空找2个对比下看看

      发布在 MR Series
      aozima
      aozima
    • 回复: D1-H板子如何设置M模式?

      可以直接取代sbi的位置

      发布在 MR Series
      aozima
      aozima
    • 回复: T113-S3 RT-Thread SMP适配笔记

      @lijinfeng xfel把JTAG打开,应该就可以连接得上了吧,你试试。

      最近在研究一个核心跑 RT-Thread,另外一个核跑 linux 。
      AMP通信配合工作

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 发现淘宝买的这CH340N模块不好使,很多板子都没法收到信息,但是led使劲闪,是不是电阻太大?

      102=1K,电阻太小吧,电流大,负载重,LED灯刺眼。

      发布在 灌水区
      aozima
      aozima
    • 回复: 第一次调试D1 MIPI DSI 发现一些奇怪问题,也不知道到底是哪里出了问题。。。

      把MIPI的时钟线用示波器测一下看看有没有输出

      发布在 MR Series
      aozima
      aozima
    • 回复: 悬赏令:横向支持更多板子, 纵向提供更多项目 DongshanPI-D1s教程征集活动!

      @allwinnertech 在 悬赏令:横向支持更多板子, 纵向提供更多项目 DongshanPI-D1s教程征集活动! 中说:

      RT

      前排支持,参与领个小任务先!

      发布在 MR Series
      aozima
      aozima
    • 回复: 求教F133-B的DDR参数

      @yuzukitsuru 啊!!确定吗?我记得谁跟和我说F133-B是128M来着。

      发布在 MR Series
      aozima
      aozima
    • 求教F133-B的DDR参数

      64M内存已用光,想测试128M,求教这块的参数。

      发布在 MR Series
      aozima
      aozima
    • 回复: 使用D1-H驱动树莓派DSI屏幕

      @ttg2577 这个屏的背光是上电自动亮的啊。
      是不是线接反了?还是屏背光坏了?

      发布在 MR Series
      aozima
      aozima
    • 回复: 请问:F133-B的V1.0 版本的norflash uboot有什么修改,如何适配?

      128M的DDR是在哪块代码支持的?

      发布在 MR Series
      aozima
      aozima
    • 回复: 哪吒开发板如何使用向量指令

      https://whycan.com/t_7592.html

      探索麻雀D1s上的RVV
      关键点在于设置VS标志位
      VS位于MSTATUS寄存器的23到24位。但是需要注意的是,当使用RVV时,需要开启浮点寄存器(FS),不然会报错。

      发布在 MR Series
      aozima
      aozima
    • 回复: T113 mq-R试玩,小麻雀大马力

      实测了下

      • lcd_x和FB相关,肯定是1920
      • lcd_ht取值是(x+hbp)*2,所以是(1920+hpb)*2
      发布在 Linux
      aozima
      aozima
    • 回复: T113 mq-R试玩,小麻雀大马力

      请问下,dual lvds 1080时,

      • lcd_x填1920还是960?
      • lcd_ht应该是1半还是?
      发布在 Linux
      aozima
      aozima
    • 回复: 调MIPI屏,同样的二进制程序,D1-H可以,D1S就不出信号,麻烦帮看下。

      问题最后定位出来:
      lcd_dclk_freq用30就可以,用31 32 33都不行。

      不明觉厉!

      发布在 MR Series
      aozima
      aozima
    • 回复: 看图猜板,猜对的同学可以免费获得!

      2合一必须是V853

      发布在 V Series
      aozima
      aozima
    • 回复: 调MIPI屏,同样的二进制程序,D1-H可以,D1S就不出信号,麻烦帮看下。

      问题更新

      经交叉对比发现,时钟信号不正常的原因,并不是因为D1-H和D1S的原因。
      而是因为配置的MIPI屏参的问题。

      现在D1S上面,使用D1-H的TFT08006的参数,也可以正常出波形。
      但D1S目前使用的参数,是从 https://bbs.aw-ol.com/topic/808 这里来的,这参数本身看起来也是没问题的。

      发布在 MR Series
      aozima
      aozima
    • 调MIPI屏,同样的二进制程序,D1-H可以,D1S就不出信号,麻烦帮看下。

      我们基于melis代码,在移植柿饼UI,RGB屏之前调通了,这次准备点MIPI屏,结果D1S配好参数好,没有点亮,用示波器测量MIPI-DSI的差分时钟输出,发现是乱的。为了对比找问题,我们把同样的二进制程序下载到D1-H上面跑,差分时钟输出就很完美。

      此时2个芯片的程序,在二进制上已是相同的,他们的所用的LCD输出IO也是相同的,所以实在想不到还有不同,请大佬们帮分析下可能会是哪里的差异造成?

      D1-H正常时钟信号
      DS1Z_QuickPrint1.png

      D1S异常时钟信号
      DS1Z_QuickPrint2.png
      DS1Z_QuickPrint3.png
      DS1Z_QuickPrint4.png

      发布在 MR Series
      aozima
      aozima
    • 回复: 如何用100元制作一块V853 AI 开发板

      焊得真不错,和楼主同款加热台!

      你这个抽风的,电机那边是吸入式的吗?

      发布在 V Series
      aozima
      aozima
    • 回复: 翻车了,蓝色D1-H 东山哪吒STU最小板,只能玩,不能用来连接扩展板,这可如何是好?

      大力出奇迹,用点力就插进去了。

      发布在 MR Series
      aozima
      aozima
    • 回复: 【入门必看】全志V853开发板——构建编译与固件烧篇

      赞一个,向楼主学习!

      里面的RV MCU啥时候搞起来?

      发布在 V Series
      aozima
      aozima
    • 回复: D1-H/D1s真的要卷起来了!!!

      下单了1片

      不过感觉还是紫色好看啊!

      发布在 MR Series
      aozima
      aozima
    • 回复: 请问我现在基于freertos开发APP,重新编译后每次都要重新烧录镜像重新运行嘛

      不用虚拟机不就省了很多步骤。

      发布在 Wireless & Analog Series
      aozima
      aozima
    • 回复: V3s在哪设置,可以发送42字长短包...

      60字节是以太网要求的,不影响正确性。
      没自动填充的芯片,你还得手动帮填充。

      发布在 A Series
      aozima
      aozima
    • 回复: 用dma测试了一下T113S3读取spinor的速度,真是惊人呢

      再用上双线,体验双倍快乐!

      发布在 T Series
      aozima
      aozima
    • 回复: 请问t113-s3的 CONFIG_SYS_CACHELINE_SIZE是多少

      F133是64,A7这边应该都是32。
      等楼下帮确认下。

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 真●猛男限定!MQ-Pro粉色

      已经下单2片,坐等快递!

      发布在 MR Series
      aozima
      aozima
    • 回复: 一图看懂 MIPI LCD 的初始化序列

      如果不通,一般怎么调呢?

      有什么爬坑经验吗?

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: R11的I2S没有MCLK引脚, 如果要驱动声卡,应该怎么处理呢?可以用一个24.576MHz有源晶振代替吗?

      要不考虑下用芯片内置的模拟音频?

      发布在 A Series
      aozima
      aozima
    • 回复: T113-S3 ARM 及 DSP Benchmark

      好耶,又可以学习新知识了!

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 很好奇闲鱼上面这个 【双AC108】模块是用来干嘛的,买了三个研究一下。

      用来做麦克风阵列?看丝印是 (AISPEECH)(思必驰)

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: T113-S3 ARM 及 DSP Benchmark

      目前hifi dsp采用的自编译的gcc编译器

      这个赞!

      dsp的gcc可以拿来玩吗?只有基本指令还是有部分DSP指令?

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: V853开发板来了

      坐等上架了买1块!

      发布在 V Series
      aozima
      aozima
    • 回复: D1-H/D1s真的要卷起来了!!!

      紫色板子真是好看!

      发布在 MR Series
      aozima
      aozima
    • 回复: 闲鱼 2.66寸 墨水屏推荐

      感觉不香,不过看着抽屉里面10个没动的价签,好像香不香和我也没关系,反正买回来都是吃灰的。

      发布在 灌水区
      aozima
      aozima
    • 回复: 用T113画了一个工控板

      用带VLAN的交换机芯片是不是更稳定且强大些?

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: T113-S3 CAN模块使用的全部信息

      这就NB大发了,能探测下D1S上面有没有不?

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 编译下 D1s 的 Melis

      make -j655350

      make -j 可以再多点吗?

      发布在 RTOS
      aozima
      aozima
    • 回复: 谁跑过D1a的core_mark分数吗,我这里有T113的跑分,想来对比下

      @smiletiger 没心跳只是与时间相关的不正常,主动让出不受影响。
      建议把cpu1的心跳也开起来吧,期待!

      发布在 MR Series
      aozima
      aozima
    • 回复: 谁跑过D1a的core_mark分数吗,我这里有T113的跑分,想来对比下

      @smiletiger 注意下,那个移植里面,不光第2核的心跳没启动,0核的心跳也没启动呢。

      发布在 MR Series
      aozima
      aozima
    • 回复: 谁跑过D1a的core_mark分数吗,我这里有T113的跑分,想来对比下

      @smiletiger 你要测性能的话要开启的,我那个代码是从qemu那边复制过来的,要重新适配T113才行,你可以试试加上心跳。

      发布在 MR Series
      aozima
      aozima
    • 回复: 谁跑过D1a的core_mark分数吗,我这里有T113的跑分,想来对比下

      rtt里面建立任务的时候会自动分配cpu还是需要人为去指定
      或者能不能一个任务两个核一起来用,

      默认会自动分配吧,也可以绑定。你这跑分,可以改下代码,同时跑2份core_mark看看部分。

      发布在 MR Series
      aozima
      aozima
    • 回复: T113-S3 RT-Thread SMP适配笔记

      @a937983423 那就不清楚了,看提示,应该和代码本身无关的。
      你换个目录看看,是否本地目录权限什么的。或linux编译下。

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: T113-S3 RT-Thread SMP适配笔记

      @a937983423 不清楚你用的哪个版本编译器,我是直接在env里面的编译器测试的。

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: T113-S3 RT-Thread SMP适配笔记

      代码分享

      • https://gitee.com/aozima/rt-thread/tree/allwinner_t113/
      • https://gitee.com/aozima/rt-thread/tree/allwinner_t113/bsp/allwinner_t113
      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 请教T113-S3调试IP101GRI,不能发送的问题。

      @suitjune 了解,硬件设计上已有晶振了,到时调好后再看情况来决定。

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 请教T113-S3调试IP101GRI,不能发送的问题。

      @ubuntu 谢了!我打算用下 EPHY-25M 看稳不稳,保险起见,还是会把晶振画上。

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 请教T113-S3调试IP101GRI,不能发送的问题。

      @suitjune 我过阵子也需要在F133上面使用百兆以太网,手上没有参考原理图。
      想问下你的RMII 50M时钟是谁提供的?F133/T113有50M输出吗?
      你用的是哪组IO?我打算使用PGx这组。
      PG11 EPHY-25M 这个IO作用是啥?

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 请教T113-S3调试IP101GRI,不能发送的问题。

      @suitjune 自动协商也可以不走MDIO的,因为大部分PHY上电默认就是自动协商模式。

      你的loopback要分清是emac内部的,还是PHY里面的。
      emac里面的,不接PHY都能回环的。
      要用PHY里面的才行。

      收发都有计数器都不是0

      PHY里面的收发都不是0了?再尝试通信下是否会涨?如果会,那你就要怀疑你的PC这边了。你是直边PC还是用了交换机?

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 请教T113-S3调试IP101GRI,不能发送的问题。

      网线那边有协商的,应该收发都通的。
      那么,RMII这边的TX也许有焊接问题?看看PHY里面有没有收发包计数器?或在PHY里面开一下loopback模式测试确认下。

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • T113-S3 RT-Thread SMP适配笔记

      T113-S3 SMP适配笔记

      目标

      给T113-S3适配RT-Thread,并支持SMP。

      资料

      没有太详细的资料和示例,只有一些零星的信息。

      • F133封装基本兼容
      • Cortex-A7双核

      一些参考资料

      • https://whycan.com/t_7808.html
      • https://bbs.aw-ol.com/topic/1247/

      计划

      • 最好能直接使用xfel在SRAM,或是DDR中运行,避免从SD卡启动还需要SPL。
      • 先用xfel payload跑通, 最好能有串口打印。
      • 再尝试直接load到ddr运行。
      • 尝试在DDR中运行rt-thread
      • 尝试响应中断
      • 尝试支持SPL

      过程

      环境准备

      • 开发板 芒果派
      • 下载工具 xfel

      先连接好开发板,默认没卡也没有FLASH,会自动进入USB FEL。
      通过xfel可以探测并读取芯片信息。

      $ xfel version
      AWUSBFEX ID=0x00185900(R528/T113) dflag=0x44 dlength=0x08 scratchpad=0x00045000
      
      $ xfel sid
      d3402000ec1408140140082114cb5bcb
      
      $ xfel ddr t113-s3
      Initial ddr controller succeeded
      

      xfel payload

      磨刀不误砍柴工,调芯片最好有JTAG,没有的情况下,串口打印是必须的。
      xfel工程里面有默认有t113-s3的ddr和spi的payload工程了。
      我们先从里面剥离出最简单的串口操作代码,让其至少有输出功能,方便后面打印日志。

      使用新编译出的payload,重新编译生成xfel,再随便执行下spi flash命令,串口有打印就行了。
      留着这代码备用。

      ddr中运行代码

      继续基于上面的代码,把具体的功能可以先屏蔽。然后把修改链接地址为ddr。
      然后使用xfel把这代码加载到DDR中,运行下看没有输出。

      xfel ddr t113-s3
      xfel write 0x40000000 spi.bin
      xfel exec 0x40000000
      

      果然看到了打印,说明可以使用xfel直接加载程序到DDR中运行,这样为后面的开发带来了极大的便利。

      DDR中运行rt-thread

      有了基本开发条件后,就可以开始移植软件部分了。

      因为是cortex-a的内核,这块都比较通用,我打算基于bsp/qemu-vexpress-a9来修改。

      先是使用menuconfig重新配置一下,把所有用不到的组件全关了,只留最基本的kernal和串口驱动部分。

      再把链接脚本中的地址修改为目标芯片的地址 0x40000000。

      然后把board.c中的中断和时钟心跳这些与硬件有关的代码先屏蔽。

      串口驱动

      因为没有JTAG,那么串口驱动是必须的了, 把之前从xfel payload中提取出来的串口驱动复制过来。
      替换到原来的串口驱动的初始化部分,并把原来的所有硬件相关的代码暂时屏蔽。
      只保留putc功能。

      编译通过后,使用xfel加载到ddr中运行。观察串口。
      果然没有任何打印 !!!!

      汇编中的debug

      遇事不要慌,问题肯定不大。没有任何打印说明程序没能正常运行,或是打印本身有问题。
      首先没被运行的可能性可以排除,因为之前加载payload改的小代码可以运行的。

      然后就是有可能程序还没运行到程序中串口初始化的地方,此时最好能有JTAG单步,或是能知道启动代码中的汇编程序都运行到哪了。
      如果是C,每行加个打印就好了。嗯,汇编也能加。

      因为驱动中的接口都是一堆参数,带句柄,还是static的,显然不方便汇编里面调用。
      于是我们单独改造下,让串口初始化不需要参数,输出函数只要一个输出数据参数即可。

      void sys_uart_init(void)
      {
      	virtual_addr_t addr;
      	uint32_t val;
      
      	/* Config GPIOE2 and GPIOE3 to txd0 and rxd0 */
      	addr = 0x020000c0 + 0x0;
      	val = readl(addr);
      	val &= ~(0xf << ((2 & 0x7) << 2));
      	val |= ((0x6 & 0xf) << ((2 & 0x7) << 2));
      	write32(addr, val);
      	............
      }
      
      void sys_uart_putc(char c)
      {
      	virtual_addr_t addr = 0x02500000;
      
      	while((readl(addr + 0x7c) & (0x1 << 1)) == 0);
      	write32(addr + 0x00, c);
      }
      

      这样汇编中就可以比较方便调用了,先放在启动入口看看有没打印。

      .globl _reset
      _reset:
          ldr r1, [r1]
          bl sys_uart_init
          mov r0, ='R'
          bl sys_uart_putc
          mov r0, ='T'
          bl sys_uart_putc
          mov r0, ='T'
          bl sys_uart_putc
      

      新程序加载到DDR中,果然看到了我们想要的RTT这3个字的打印。说明程序运行到了这里。
      通过这种办法,继续在汇编中不同位置添加不同的字符,最后定位到是进MMU初始化就再没打印了。

      哦!!! 想起来还没更新MMU配置呢。
      MMU配置可以先简单些,32位的全4G空间全部当成外设,把DDR区域设置为常规(带cache,可运行)

      修改board.c中的platform_mem_desc表就好了

      struct mem_desc platform_mem_desc[] = {
          {0x00000000, 0xFFFFFFFF, 0x00000000, DEVICE_MEM},
          {0x40000000, 0x47FFFFFF, 0x40000000, NORMAL_MEM},
      };
      

      更新mmu配置后,果然看到了 RT-Thread 启动LOGO,还打印了msh>。
      当然,此时命令行不能输入。因为我们串口驱动的输入还没写。

      因为全志的串口驱动基本兼容的,知道串口外设的基地址,直接抄原来其它芯片的代码,直接读寄存器,把getc实现就好了。
      但还是不能输入,应该是要支持中断才行。

      中断

      cortex-A芯片一般都使用GIC,但有好几个版本,通过有限的资料查到,T113-S3是使用GICv2。
      这块代码都是通用的,关键是要知道其在芯片中的地址,这个PDF中也有查到GIC地址是在0x03020000。

      RT-Thread中,GICv2的基本适配已做好,新芯片适配需要知道2个地址,但PDF中没写。
      这块根据全志同类型芯片的偏移来看,猜测是一样的

      /* the basic constants and interfaces needed by gic */
      rt_inline rt_uint32_t platform_get_gic_dist_base(void)
      {
          return 0x03021000;
      }
      
      rt_inline rt_uint32_t platform_get_gic_cpu_base(void)
      {
          return 0x03022000;
      }
      

      再通过PDF上面查到的UART0中断号是34,改好后,加载运行,果然收到中断了。

      SMP

      接下来就是适配SMP了,因为只是2核,所以也不用管分簇这些了。
      最主要是要知道第2个核是怎么启动,启动后会运行哪个地址的程序。

      其它这里还有个坑点要注意,就是有些芯片多核是自动启动的,但此时一般软件环境还没准备好,可能会乱飞,需要把非0核先暂停下来。
      如果是这类芯片,就需要把RT_SMP_AUTO_BOOT打开,这样非0核会自动挂起,直到被0核唤醒,再去指定地址运行。
      因为我们之前都能正常运行了,所以肯定不是这种类型的。

      通过 https://whycan.com/t_7808.html 这个贴子里面 shaoxi2010 大佬的说明,知道了第2个核的启动方法。
      此时更新menuconfig把SMP打开,然后更新下SMP需要的几个接口

      /*
      The Soft Entry Address Register of CPU0 is 0x070005C4.
      The Soft Entry Address Register of CPU1 is 0x070005C8.
      */
      void rt_hw_secondary_cpu_up(void)
      {
          uint32_t cpuboot_membase = 0x070005c4;
          uint32_t cpuxcfg_membase = 0x09010000;
          uint32_t cpu, reg;
      
          cpu = 1;
          /* Set CPU boot address */
          writel((uint32_t)(secondary_cpu_start), cpuboot_membase + 4 * cpu);
      
          /* Deassert the CPU core in reset */
          reg = readl(cpuxcfg_membase);
          writel(reg | (1 << cpu), cpuxcfg_membase);
      
          __asm__ volatile ("isb":::"memory");
      }
      

      一些和芯片外设相关的先禁用掉,不要心跳也是能运行的。

      void secondary_cpu_c_start(void)
      {
          // int timer_irq_number;
      
          // timer_irq_number = aw_get_irq_num("TIMER1");
      
          rt_hw_vector_init();
      
          rt_hw_spin_lock(&_cpus_lock);
      
          arm_gic_cpu_init(0, platform_get_gic_cpu_base());
          // arm_gic_set_cpu(0, timer_irq_number, 0x2); //timer1
      
          // timer1_init(); 
          // rt_hw_interrupt_install(timer_irq_number, rt_hw_timer1_isr, RT_NULL, "tick1");
          // rt_hw_interrupt_umask(timer_irq_number);
      
          rt_system_scheduler_start();
      }
      

      编译通过后,使用xfel加载到ddr中运行。SMP果然愉快地运行起来了。

       \ | /
      - RT -     Thread Operating System
       / | \     4.1.0 build Apr  9 2022 21:17:55
       2006 - 2022 Copyright by RT-Thread team
      [I/sal.skt] Socket Abstraction Layer initialize success.
      cpuxcfg_membase = 0x13FF0101 // 启动之前的值
      cpuxcfg_membase = 0x13FF0103 // 启动之后的值
      
      Hello T113 RT-Thread SMP!
      
      msh />ps
      thread   cpu bind pri  status      sp     stack size max used left tick  error
      -------- --- ---- ---  ------- ---------- ----------  ------  ---------- ---
      tshell     0   2   20  running 0x00000140 0x00001000    15%   0x0000000a 000
      aio      N/A   2   16  suspend 0x00000080 0x00000800    07%   0x0000000a 000
      sys work N/A   2   23  suspend 0x00000084 0x00000800    06%   0x0000000a 000
      tsystem  N/A   2   30  suspend 0x00000098 0x00000400    22%   0x00000020 000
      tidle1     1   1   31  running 0x0000005c 0x00000400    19%   0x00000020 000
      tidle0   N/A   0   31  ready   0x0000005c 0x00000400    19%   0x00000020 000
      timer    N/A   2    4  suspend 0x0000007c 0x00000400    12%   0x0000000a 000
      

      后续

      整理代码上gitee

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: 求助:D1上如何在S模式下处理异常和中断?

      直接用M模式多好

      发布在 MR Series
      aozima
      aozima
    • 回复: T113使用GT911,无法使用

      调I2C先把逻辑分析仪给接上!

      发布在 Linux
      aozima
      aozima
    • 回复: 开新坑,M-Core 小四核,坐等翻车

      这是自己手贴么?

      发布在 其它全志芯片讨论区
      aozima
      aozima
    • 回复: USB Gadget 模拟摄像头 g_webcam: musb-hdrc.4.auto: failed to start g_webcam: -22

      有复合设备吗?把不必要的复合设备关掉,看能不能减少端点占用。

      发布在 Linux
      aozima
      aozima
    • 回复: 维修芯片烧毁的XR806

      是因为板子IO不同,如输出接到外面的输入上,双方互怼烧掉了。
      还是因为主频晶振等差异烧掉了?

      发布在 Wireless & Analog Series
      aozima
      aozima
    • 回复: 没有芯片,拿PS画一个 YuzukiCore T113-S3 小型双核ARM核心板

      习得此技,再不缺芯!

      发布在 灌水区
      aozima
      aozima
    • 回复: D1-H内存访问速度差异测试

      抱歉,我理解成写入操作了。

      只读取的话,清cache后确实真实地从DRAM中读取。
      但此时CPU实际可能会从DRAM读取64字节的数据吧,因为cache line是64字节。

      发布在 MR Series
      aozima
      aozima
    • 回复: D1-H内存访问速度差异测试

      虽然你访问完就刷cache,但实际CPU操作的还是cache中的,结果有参考意义,但不准确。除非你裸机映射成非cache的,但这样没什么实际意义。

      实际使用中,数据结构和地址多留意尽量对齐,大数据量尽量cache line对齐就行了。

      发布在 MR Series
      aozima
      aozima
    • 回复: 麻雀,如何将单核RV改成双核ARM?

      等楼主上架新版本感觉对手残的我更靠谱些!

      发布在 MR Series
      aozima
      aozima
    • 回复: XR806_RTthread接口适配请教

      既然有GDB了,是否把Printf的底层输出置空掉,看是否可以正常跑起来。

      发布在 Wireless & Analog Series
      aozima
      aozima
    • 回复: 【XR806开发板试用】将“米家蓝牙温湿度计2”的数据上传到阿里云

      发现蓝牙连了以后,电池消耗大加快了。

      发布在 Wireless & Analog Series
      aozima
      aozima
    • 回复: 因为喜欢用ADB,因为不喜欢插拔TF卡,所以D1直接用PhoenixSuit烧录TF(SDNAND)

      D1S好改不?烧录速度多少?

      我现在烧录D1S的SDNAND,是改写了xfel来实现的
      https://whycan.com/t_7730.html

      发布在 MR Series
      aozima
      aozima
    • 回复: 请教D1/D1S的LDO输入端串的二极管作用?

      @lovexulu 谢谢!看来用0.7V的普通二极管比较好!

      发布在 MR Series
      aozima
      aozima
    • 请教D1/D1S的LDO输入端串的二极管作用?

      看到原理图上面都有串一个二极管,请问此二极管的作用是什么?

      • 降压替LDO分担压差?用低压差的肖特基二极还是标准压差的好?
      • 掉电时防止电流倒灌?
      发布在 MR Series
      aozima
      aozima
    • 回复: spi nand flash固件烧录

      用xboot大佬的xfel啊

      发布在 MR Series
      aozima
      aozima
    • 回复: 芒果的D1s麻雀还没出来,我们的 40PIN RGB 转 I80 模块安排上了。

      还能直接点I80的屏啊,有没有不能点的屏?

      发布在 MR Series
      aozima
      aozima
    • 回复: AES算法D1芯片硬件CE模块补丁

      打完补丁测下AES情况看看!

      发布在 MR Series
      aozima
      aozima
    • 回复: 戴尔笔记本电脑原装电源180瓦,换了朋友的150瓦电源,电脑这个提示是什么原理,怎么实现的?

      好多电源是3芯的,多的那芯是个电阻,高端的甚至有通讯。

      发布在 灌水区
      aozima
      aozima
    • 回复: 请教:按照配网开发指南在哪吒板采用smartconfig方式配网,收不到xconfig发出的广播包

      尽量BLE配网啊,实在不行AP也可以接受。
      smartconfig的坑别跳了!

      发布在 MR Series
      aozima
      aozima
    • 回复: 坐等芒果派即将推出基于D1s代号麻雀MangoPi-MQ1 的 RISC-V Linux小板

      坐等上架!买买买!

      发布在 MR Series
      aozima
      aozima
    • 回复: 18.8元的 4G 转 WIFI dongle,即插即用,无需USB通讯,通电即可使用。

      没了,错失一个亿。

      发布在 灌水区
      aozima
      aozima
    • 回复: 网友寄来了两片自制的D1板子,无法进入FEL模式,各位大佬进来把把脉

      所以这个简易USB电流表显示0mA。

      这个渣工具我也有一个,100多mA以上才有显示。

      发布在 MR Series
      aozima
      aozima
    • 1 / 1