主题 : 6410 裸机若干疑问讨论 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 62053
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
综合积分: 40 分
注册时间: 2012-01-13
最后登录: 2012-03-08
楼主  发表于: 2012-02-26 15:53

 6410 裸机若干疑问讨论

本人刚开始学习6410的裸机调试,不要问我为什么拿6410玩裸机......我也知道正常人干不出来这种事
,学习之中各种问题接踵而至,无奈对底层的那些东西实在不太了解,只能发帖求助了...
用的是TINY6410,ADS1.2,axd,,jlink.
现阶段所遇到的问题主要是:
1.中断进不去,在成功完成串口查询方式的发送与接收以后,就想试一试中断的。结果发现根本进不去中断,后来在网上查阅不少帖子,初步断定是需要使用mmu.c对内存进行重映射,但是无奈找不到这个文件...而自己对汇编根本就不了解...苦...
2.代码超过8K就调试不了了,查阅以后得知在使用sd卡启动后,flash中前8k的代码会被copy到ram中运行,如果程序超过8k必须添加代码复制程序,可是....这个又没有....
我知道这种问题可能对很多高手来说很简单,可是对我这种初学者来说,这种问题就就太解决了,不太明白为什么6410裸机开发的东西都未开源呢?真心希望那些前辈高手能把这些东西分享给我们这些菜鸟,我相信论坛存在的意义就是互相帮助互相进取的,一个人的力量是有限的,助人者人人助,走过路过的,能帮忙解答的,希望能帮一下,谢谢啦!
级别: 侠客
UID: 62946
精华: 0
发帖: 80
金钱: 420 两
威望: 84 点
综合积分: 160 分
注册时间: 2012-02-11
最后登录: 2012-12-12
1楼  发表于: 2012-02-29 15:41
我也试过中断进不去,原因是没有再初始化部分设置堆栈。。。
级别: 新手上路
UID: 62053
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
综合积分: 40 分
注册时间: 2012-01-13
最后登录: 2012-03-08
2楼  发表于: 2012-02-29 16:34

 回 1楼(zhuoxi) 的帖子

         EXPORT asm_handle_k1_irq
asm_handle_k1_irq
   sub lr,lr,#4      ; 修正返回地址
   stmdb sp!,{r0-r12,lr}    ; 保存程序执行现场
   ldr lr,=isr_return     ; 设置中断处理程序返回地址
   IMPORT ISR_Uart0
   ldr pc,=ISR_Uart0     ; 跳入中断处理程序

isr_return        ; 中断处理返回标签
   ldmia sp!,{r0-r12,pc}^    ; 恢复程序执行现场,返回继续执行

我的是在初始化程序里面加了这段中断服务程序解决的,程序还是一个好心人给的...
不过我很奇怪,这个相当于把串口中断服务程序的入口地址设置了,如果同时使用多个中断的话是不是每个都要设置呢?

另外,这位哥们你能不能把你的设置堆栈的代码贴出来顺便解释一下,我对汇编实在是没得招