打印

【BB-Black测试】 + 裸奔ING

[复制链接]
2859|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
le062|  楼主 | 2014-9-17 23:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
le062|  楼主 | 2014-9-17 23:52 | 只看该作者
本帖最后由 le062 于 2014-9-17 23:57 编辑

    在AM335X_StarterWare_02_00_01_01中就有一个操作LED的demo,不过它的工程是使用了预编译好的几个底层库,如下:


    下面,将重建一个工程,把这几个库中源码导入,一起编译,实现一个流水灯。

    建立新工程后,将上图中几个例程的源码导入,在main函数中简单调用gpio的操作函数,编译,发现drivers下几个c文件编译失败,可以将这几个文件注释掉(暂时用不到);还有在system下的汇编文件有几条关于NEON的指令报错,这儿需要将编译选项中的--neon勾选,重新编译通过。

    在调试过程中遇到过几种问题:
    1:调试器无法链接,这个问题一般通过调试器配置页面下的TEST CONNECTION进行连接测试
    2:我们跑的程序默认需要加载到ddr中运行,所以需要通过一个脚本进行相关初始化。需要如下配置a8核,至于m3核,直接bypassed。

    3:在脚本运行完成后报如下错误:

    这个具体原因不清楚,解决方法是不要让bbb在上电时进入linux,比如在uboot中stop autoboot。

    然后,基本上就可以跑起来了,当然整个过程相对于一般单片机繁琐了很多。

    Main.c代码 和st的差不多吧。
#include "soc_AM335x.h"
#include "beaglebone.h"
#include "gpio_v2.h"

#define GPIO_INSTANCE_ADDRESS           (SOC_GPIO_1_REGS)
#define GPIO_INSTANCE_PIN_NUMBER        (23)

static void Delay(volatile unsigned int count)
{
    while(count--);
}

int main()
{
    GPIO1ModuleClkConfig();
    GPIOModuleEnable(GPIO_INSTANCE_ADDRESS);
    GPIOModuleReset(GPIO_INSTANCE_ADDRESS);
    GPIODirModeSet(GPIO_INSTANCE_ADDRESS,
                   GPIO_INSTANCE_PIN_NUMBER,
                   GPIO_DIR_OUTPUT);
    GPIODirModeSet(GPIO_INSTANCE_ADDRESS,
                   21,
                   GPIO_DIR_OUTPUT);
    GPIODirModeSet(GPIO_INSTANCE_ADDRESS,
                   22,
                   GPIO_DIR_OUTPUT);
    GPIODirModeSet(GPIO_INSTANCE_ADDRESS,
                   24,
                   GPIO_DIR_OUTPUT);
    while(1)
    {

        GPIOPinWrite(GPIO_INSTANCE_ADDRESS,
                     24,
                     GPIO_PIN_LOW);
        GPIOPinWrite(GPIO_INSTANCE_ADDRESS,
                     21,
                     GPIO_PIN_HIGH);
        Delay(0x7FFFF);

        GPIOPinWrite(GPIO_INSTANCE_ADDRESS,
                     21,
                     GPIO_PIN_LOW);
        GPIOPinWrite(GPIO_INSTANCE_ADDRESS,
                     22,
                     GPIO_PIN_HIGH);
        Delay(0x7FFFF);

        GPIOPinWrite(GPIO_INSTANCE_ADDRESS,
                     22,
                     GPIO_PIN_LOW);
        GPIOPinWrite(GPIO_INSTANCE_ADDRESS,
                     23,
                     GPIO_PIN_HIGH);
        Delay(0x7FFFF);

        GPIOPinWrite(GPIO_INSTANCE_ADDRESS,
                     23,
                     GPIO_PIN_LOW);
        GPIOPinWrite(GPIO_INSTANCE_ADDRESS,
                     24,
                     GPIO_PIN_HIGH);
        Delay(0x7FFFF);
    }

}


附件:工程包,a8初始化脚本(注意工程中位置),两份不错的参考资料

脚本.rar (7.71 KB)
工程包.rar (842.4 KB)
Jlink在starterware调试中的应用.pdf (1.47 MB)
(分享)使用CCS5下载调试StarterWare例程代码的方法.pdf (637.37 KB)


使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
zhangmangui + 6 很给力!
板凳
le062|  楼主 | 2014-9-18 00:18 | 只看该作者
NEXT:啃个新鲜的,PRU

使用特权

评论回复
地板
小木欧尼| | 2014-9-18 19:58 | 只看该作者
呵呵 多谢分享

使用特权

评论回复
5
edishen| | 2014-9-18 20:08 | 只看该作者
不错的东西

使用特权

评论回复
6
zhangmangui| | 2014-9-18 22:22 | 只看该作者
le062 发表于 2014-9-17 23:52
在AM335X_StarterWare_02_00_01_01中就有一个操作LED的demo,不过它的工程是使用了预编译好的几个底层 ...

非常感谢你的分享    能不能抽时间分享一个视频呢   

使用特权

评论回复
7
lijiabaobei| | 2014-9-18 23:02 | 只看该作者
视频等待中

使用特权

评论回复
8
le062|  楼主 | 2014-9-19 23:18 | 只看该作者
本帖最后由 le062 于 2014-9-19 23:44 编辑

PRU可以认为是AM335x上面的另外两颗arm核心,可以与cortex-a8核并行运行。但是它可以访问的地址是十分“限制”的(包括寄存器,ram)。

比如,在a8核中,我们需要控制gpio输出,可以通过
GPIO_1_CLEARDATAOUT (0x4804C190)和GPIO_1_SETDATAOUT (0x4804C194)这两个寄存器写一实现,但是在pru核中无法访问该寄存器,只能通过core registers中的r30寄存器对16个IO进行输出控制,而且这16个IO是固定引脚(很不幸,BBB上的4个LED不在其中)




下面简单说一下如何编译运行pru,这部分最好参看附件文档
首先需要安装ccs6,新版ccs多了一个pru的c编译器,编写程序方便很多,在安装时可以勾选,


新建一个pru工程,编写pru程序,生成固件。
随便选一个am3359-a8核的工程,开始调试,

加载AM335x_PRU_ICSS.gel,

依次执行下面两个脚本函数





然后就可以连接pru核
在memory窗口下加载之前生成的pru固件,调试运行,OVER

bbb-pru.rar (26.92 KB) am335x_pru_package-master.rar (3.45 MB)

使用特权

评论回复
9
ykhakuna| | 2015-4-29 23:58 | 只看该作者
本帖最后由 ykhakuna 于 2015-4-30 22:38 编辑

通了,参照楼主文档以及视频www***.***youtube***.***com/watch?v=iOQisBaDANA
stupid setup, delete the * from the url link

环境:CCS5.5,D版segger jlink(V4.56f),BBB, USB转TTL FT232RL模块
测试uartEcho,能从串口得到信息。




使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

435

帖子

4

粉丝