购买链接: https://item.taobao.com/item.htm?id=544123127922
产品参数简介: Hp-39gs.html
主芯片手册地址: S3C2410.PDF
网友hack出来的项目: github/zeph-39gx
离线
Interesting 从我blog里的广告找来这个论坛看见了自己弃掉的坑……
正在入坑,大神可以分享弃坑经验吗?
你是这个帖子的原作者?
我是那个GitHub Repo的作者,以及cnCalc的坛主,以及cnCalc最早关于39gs JTAG定义的帖子也是我写的……
看起来你已经搞定了JFlash烧写,下一步就是RAM调试了,直接用我的工程文件应该不难,软件是IAR EWARM。启动文件是我从新写的,但是应该不难理解。
如同Repo的Readme所说,现在需要解决几个问题,很关键的一个就是关机。关机不单单是要把2410设置到停机模式,还得让LCD也进入关机状态,这个是我之前没有做的。LCD是通过SPI控制的,控制代码可以参考我写的驱动。初始化序列我已经写在里面了,是我当时用逻辑分析仪抓的。但是关机的序列我记得我是没有抓,要做的话显然需要抓一下。
晕哥 说:正在入坑,大神可以分享弃坑经验吗?
你是这个帖子的原作者?我是那个GitHub Repo的作者,以及cnCalc的坛主,以及cnCalc最早关于39gs JTAG定义的帖子也是我写的……
看起来你已经搞定了JFlash烧写,下一步就是RAM调试了,直接用我的工程文件应该不难,软件是IAR EWARM。启动文件是我从新写的,但是应该不难理解。
如同Repo的Readme所说,现在需要解决几个问题,很关键的一个就是关机。关机不单单是要把2410设置到停机模式,还得让LCD也进入关机状态,这个是我之前没有做的。LCD是通过SPI控制的,控制代码可以参考我写的驱动。初始化序列我已经写在里面了,是我当时用逻辑分析仪抓的。但是关机的序列我记得我是没有抓,要做的话显然需要抓一下。
膜拜围观大神。。。
离线
接着克隆ZephRay大神的项目:
$ git clone https://github.com/zephray/zeph-39gx.git
Cloning into 'zeph-39gx'...
remote: Counting objects: 121, done.
remote: Total 121 (delta 0), reused 0 (delta 0), pack-reused 121
Receiving objects: 100% (121/121), 324.31 KiB | 122.00 KiB/s, done.
Resolving deltas: 100% (26/26), done.
不少编译错误等待解决
离线
不少编译错误等待解决
我最开始用的是Keil,后来改用IAR了,启动文件也是给IAR用的。你可以用IAR打开项目或者想办法找一份Keil可以用的启动代码
w4 0x48000000 ,0x00000090
w4 0x48000004 ,0x00000600
w4 0x48000008 ,0x00000700
w4 0x4800000c ,0x00000700
w4 0x48000010 ,0x00000700
w4 0x48000014 ,0x00000700
w4 0x48000018 ,0x00000700
w4 0x4800001c ,0x00018008
w4 0x48000020 ,0x00018008
w4 0x48000024 ,0x002C0000
w4 0x48000028 ,0x00000000
w4 0x4800002c ,0x00000020
w4 0x48000030 ,0x00000000
w4 0x08000000, 0xAABBCCDD
mem32 0x08000000, 1
这次应该可以了, 我从hack的代码弄出来的寄存器数据
离线
好消息,搞定外部SRAM调试S3C2410: RFID_MDK_S3c2410_20171207.7z
调试界面:
使用这份代码调试,需要注意的问题, 把SRAM的相关寄存器初始化:
w4 0x48000000 ,0x00000090
w4 0x48000004 ,0x00000600
w4 0x48000008 ,0x00000700
w4 0x4800000c ,0x00000700
w4 0x48000010 ,0x00000700
w4 0x48000014 ,0x00000700
w4 0x48000018 ,0x00000700
w4 0x4800001c ,0x00018008
w4 0x48000020 ,0x00018008
w4 0x48000024 ,0x002C0000
w4 0x48000028 ,0x00000000
w4 0x4800002c ,0x00000020
w4 0x48000030 ,0x00000000
w4 0x08000000, 0xAABBCCDD
mem32 0x08000000, 1
离线
厉害哦
离线
w4 0x48000004 0x00000600 ##BANKCON0
w4 0x48000008 0x00000700 ##BANKCON1
w4 0x4800000C 0x00000700 ##BANKCON2
w4 0x48000010 0x00000700 ##BANKCON3
w4 0x48000014 0x00000700 ##BANKCON4
w4 0x48000018 0x00000700 ##BANKCON5
w4 0x4800001C 0x00018008 ##BANKCON6
w4 0x48000020 0x00018008 ##BANKCON7
w4 0x48000000 0x00000090 ##BWSCON
w4 0x48000024 0x002C0000 ##REFRESH
w4 0x48000028 0x00000000 ##BANKSIZE
w4 0x4800002C 0x00000020 ##MRSRB6
w4 0x48000030 0x00000000 ##MRSRB7
w4 0x08000000 0xAABBCCDD ##write external sram
mem32 0x08000000, 1 ##read external sram
以上是读写外部SRAM的JLINK命令,
但是我发现BWSCON寄存器一会就会回到 0x00000002,
这样执行 mem32 0x08000000, 1 读操作的时候读出来都是 0xFFFFFFFF
写是随时可以写,
但是读之前先一定要设置: w4 0x48000000 0x00000090 ##BWSCON
不明白其中的原因。
离线
从CSDN借了几行代码, 貌似没有问题了.
w4 0x53000000 0x00000000
w4 0x4A000008 0xFFFFFFFF
w4 0x4A00001C 0x000007FF
w4 0x53000000 0x00000000
w4 0x56000050 0x000055AA
w4 0x4C000014 0x00000007
w4 0x4C000000 0x00FFFFFF
w4 0x4C000004 0x00061012
w4 0x4C000008 0x00040042
w4 0x48000004 0x00000600 ##BANKCON0
w4 0x48000008 0x00000700 ##BANKCON1
w4 0x4800000C 0x00000700 ##BANKCON2
w4 0x48000010 0x00000700 ##BANKCON3
w4 0x48000014 0x00000700 ##BANKCON4
w4 0x48000018 0x00000700 ##BANKCON5
w4 0x4800001C 0x00018008 ##BANKCON6
w4 0x48000020 0x00018008 ##BANKCON7
w4 0x48000000 0x00000090 ##BWSCON
w4 0x48000024 0x002C0000 ##REFRESH
w4 0x48000028 0x00000000 ##BANKSIZE
w4 0x4800002C 0x00000020 ##MRSRB6
w4 0x48000030 0x00000000 ##MRSRB7
w4 0x08000000 0xAABBCCDD ##write external sram
mem32 0x08000000, 1 ##read external sram
离线
程序在ROM里面跑最多可以设置两个断点,而且经常没卵用。
在RAM里面跑断点个数貌似不限
离线