Commit Graph

11 Commits

Author SHA1 Message Date
Yunjie Gu 8fa9fde43a
[bsp][c28x] add support to not disable global interrupt in context-switch to enable zero-latency isr for critical interrupts. 2022-10-19 23:41:13 -04:00
YuQi b11cb41ae7
tms320f28379d fix init (#6343)
解决 tms320f28379d bsp 启动的问题。主要改动如下。

修正context.s中汇编代码错误。在旧版的代码中,操作数为32位而汇编命令却使用了针对16位数据的命令MOV,导致程序在某些情况无法正常启动线程。
由于C28x的平台下,SP只支持16bit寻址,所以用于线程空间存放的heap以及ebss段都需要放在低16位的空间,针对这个问题修改了CMD文件。此外还增加基于CMD文件基于RAM的支持,方便调试。
新增rtdef.h中RT_SECTION,RT_USED,ALIGN和RT_WEAK的定义。旧版bsp中这些定义为空,导致INIT_EXPORT注册的函数失效。
修改程序启动代码,在程序入口直接调用原生启动代码
以上改动在LAUNCHXL-F28379D 通过了测试。
2022-08-29 15:35:23 -04:00
Yunjie Gu b43f0e7205
[bsp][tms320f28379d] Fix compile ti (#6254)
* compile_ok

Issues fixed:
(1) update .config: select FINSH_USING_SYMTAB
(2) add rt_size_t in rtconfig_project.h
(3) fix finsh problems of using sym table
(4) update .project to include ipc source codes.
Todo list:
(1) automate the build source selection of ccs and reconcile it with scons

* change compiler

* msh can run now

the key step is to swap the order of rt_interrupt_nest -- and RT_OBJECT_HOOK_CALL(rt_interrupt_leave_hook,()) in irq.c. This is an improvised solution and an issue has been raised.

* Update 2837x_FLASH_lnk_cpu1.cmd

The original one is also fine. Just to make it more rigorous since FSymTab is in data section.

* update readme.md

Complier selection and maintainer update.

Co-authored-by: YuQi <qiyu_sjtu@163.com>
2022-08-20 13:16:41 -04:00
Meco Man 563e49890c [asm] 解决tab和空格混用的问题 2022-01-20 20:57:35 +08:00
Xiao Lifan 66d1510ac7 convert intentation tabs to spaces 2019-12-09 09:29:12 +08:00
Xiao Lifan 01b27b9e91 [libcpu][c28x]add support for c28x mcu hardware fpu 2019-12-05 21:50:48 +08:00
明德无敌赵晓薇 d68220d866 [libcpu][c28x]Add __rt_ffs support
Use a native instruction "Count Sign Bits" to support fast ffs function, then add __rt_ffs support in C28x.
2019-07-03 19:31:54 +08:00
明德无敌赵晓薇 21d32cdb3a
[libcpu][C28x] Fix bugs of old c28x interrupt api which can not save and restore int status
In C28x DSP, interrupt status are stored in ST1 register. Both INTM and DBGM is used for masking interrupt, while the latter one is used in real-time debug mode. The origin function rudely enable and disable the interrupt without considering the recent interrupt status, which not only may cause  problem in some situation but also is not in conformity with rt-thread design specifications. The new api will fix this bug.
2019-06-18 20:59:00 +08:00
xuzhuoyi 752152b63e [bsp][tms320f28379d] Fix FPU config problem 2019-04-14 12:26:25 +08:00
xuzhuoyi 4acd8db61e [bsp][tms320f28379d] Add finsh init in rt_init_thread 2019-04-10 22:33:25 +08:00
xuzhuoyi 6c081947b5 [bsp][tms320f28379d] Classify c28x into ti-dsp 2018-11-24 17:41:55 +08:00