This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PROCESSOR-SDK-J7200:MCUSW 设置1ms 时基

Guru**** 2001725 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1043084/processor-sdk-j7200-mcusw-setup-1ms-timebase

器件型号:PROCESSOR-SDK-J7200

你好

  我正在尝试  使用   MCUSW 基址设置1ms 时基。

我发现 PDK 中的测试用例"dmTimerUt"可以正确显示1ms、如下所示:

但是、当我将程序代码移植到 MCUSW 时、 如下所示:

我使用与 PDK 相同的参数、但获取90ms 计时器

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void main(void)
{
GptApp_DemoStatus = E_OK;
#ifdef UART_ENABLED
AppUtils_Init();
#endif
AppUtils_LogResult(APP_UTILS_TEST_STATUS_INIT);
/*Init*/
MCUSWDioApp_Init();
MCUSWGptApp_Init();
AppUtils_Printf((uint32)APP_UTILS_PRINT_MSG_NORMAL,
"Sample Application - STARTS !!!\n");
/*Start Main test case*/
// return (0U);
}
//20210901_Jimchen
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
unsigned int IOLevelGPT;
void csldmTimerTest_StubTEST(uintptr_t arg)
{
uint32_t baseAddr = (uint32_t) (0x40420000UL);
//uint32_t baseAddr = (uint32_t) (0x40400000UL);
/* Disable the Timer interrupts */
TIMERIntDisable(baseAddr, TIMER_INT_OVF_EN_FLAG);
/* acknowledge the interrupt */
TIMERIntStatusClear(baseAddr, TIMER_IRQSTATUS_OVF_IT_FLAG_MASK);
//gdmTimerTest_IsrCount++;
/* Enable the Timer interrupts */
TIMERIntEnable(baseAddr, TIMER_INT_OVF_EN_FLAG);
AppUtils_Printf(MSG_NORMAL,
APP_NAME ": csldmTimerTest_StubTEST::: \n");
if(IOLevelGPT==STD_HIGH)
{
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void MCUSWGptApp_Init(void)
{
// GptApp_Startup();
/* Initialize memory sections */
AppUtils_GptSectionInit();
AppUtils_Printf(MSG_NORMAL, "\n");
AppUtils_Printf(MSG_NORMAL, APP_NAME
": Sample Application - STARTS !!!!!!!!!!!!!!!!!!!!!\n");
#if 1
//uint32_t regVal;
Board_initCfg boardCfg;
__attribute__((unused)) Board_STATUS boardStatus;
boardCfg = BOARD_INIT_PINMUX_CONFIG |
BOARD_INIT_UART_STDIO;
boardStatus = Board_init(boardCfg);
__attribute__((unused)) int32_t cslRet = CSL_EFAIL, testStatus;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

修改错误的哪一侧导致了问题?

感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我的第一个想法是、它可能是使用时钟源的问题。 我看到您已注释掉 GptApp_Startup(),您能否将此启动代码包括回并查看您是否看到正确的行为?

    谢谢、

    埃里克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经尝试过您 的建议、但得到与 之前相同的结果、90ms 计时器。

    我认为 时钟源也可能是问题所在。 但我不知道如何修改它。

    感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    回到这个话题、您是否已解决此问题或您是否仍需要帮助?

    此致、

    埃里克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我仍然 没有解决这个问题。  
    是否可以提供示例代码或其他解决方案?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是否对计时器寄存器进行了比较以确保配置相同? 您是否在寄存器中看到任何差异?

    此致、

    埃里克