terastudio
码龄6年
关注
提问 私信
  • 博客:21,278
    21,278
    总访问量
  • 18
    原创
  • 932,130
    排名
  • 9
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2019-02-24
博客简介:

terastudio的博客

查看详细资料
个人成就
  • 获得12次点赞
  • 内容获得3次评论
  • 获得66次收藏
创作历程
  • 2篇
    2022年
  • 7篇
    2021年
  • 12篇
    2020年
成就勋章
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【无标题】

eth init
原创
发布博客 2022.08.18 ·
213 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

typedef int()(int,int)

typedef int()(int,int)
原创
发布博客 2022.07.08 ·
782 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

keil取消结构体成员的自动对齐

取消结构体的自动对齐weixin_30588675 2015-04-11 19:20:00 644 收藏 1文章标签: c#版权使用 attribute((packed))例如struct TEST {  short x;int y;}attribute((packed));此时sizeof(TEST)等于6,可见此时不是自动对齐...
原创
发布博客 2021.12.01 ·
566 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

SMBUS

原创
发布博客 2021.05.31 ·
205 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

tcp_listen_input函数里的发送

tcp_listen_input函数里的发送1.tcp_input 里调用tcp_listen_input2.tcp_listen_input(struct tcp_pcb_listen *pcb){、、、、、、、最后有一句return tcp_output(npcb);}3.tcp_output/**Find out what we can send and send it@param pcb Protocol control block for the TCP connecti
原创
发布博客 2021.05.27 ·
316 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LWIP接收调用过程

最先跳转的是硬件中断ETH_IRQHandler。以下是逐级跳转过程:1.ETH_IRQHandler里调用lwip_pkt_handle();2..lwip_pkt_handle里面调用ethernetif_input(&lwip_netif);3.ethernetif_input(&lwip_netif);里面执行netif结构体类型变量lwip_netif的成员函数input();err=netif->input(p, net...
原创
发布博客 2021.05.19 ·
3321 阅读 ·
4 点赞 ·
0 评论 ·
19 收藏

TCP的三次握手与四次挥手理解及面试题(很全面)

TCP的三次握手与四次挥手理解及面试题(很全面)置顶 青柚_ 2018-07-17 20:56:17 567889 收藏 3719分类专栏: 计算机基础 文章标签: IT面试基础版权 本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个
转载
发布博客 2021.05.08 ·
215 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

TCP报文格式解析(转)

TCP报文格式解析http://c.biancheng.net/view/6441.htmlTCP 报文是 TCP 层传输的数据单元,也称为报文段。TCP 报文中每个字段如图所示。上图中 TCP 报文中每个字段的含义如下:源端口和目的端口字段TCP源端口(Source Port):源计算机上的应用程序的端口号,占 16 位。TCP目的端口(Destination Port):目标计算机的应用程序端口号,占 16 位。序列号字段CP序列号(Sequence Number):占 32 位。它表
转载
发布博客 2021.05.08 ·
785 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

解决“‘pip‘ 不是内部或外部命令 pyinstaller生成EXE

解决"‘pip’ 不是内部或外部命令添加环境变量:path:C:\Users\Administrator\AppData\Local\Programs\Python\Python39\Scripts重新运行cmd即可cmd输入:pip install pyinstaller安装pyinstallercmd输入:C:\Users\Administrator>g:G:>cd downloads\tcpG:\Downloads\tcp>pyinstaller -F tcp_
原创
发布博客 2021.05.08 ·
611 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

freertos 源码详解六 任务的切换

PenSV异常1、任务切换的具体过程在PenSV中断服务函数里2、ICSR寄存器bit28置1,则引起PenSV中断#define portYIELD() { /* Set a PendSV to request a context switch. / portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; / Barriers are normally n
原创
发布博客 2020.06.16 ·
735 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

freertos 源码详解五 任务的挂起删除和恢复

任务的删除vTaskDelete()1、根据任务句柄获取任务控制块,如果句柄为NULL,表示删除任务本身。pxTCB = prvGetTCBFromHandle( xTaskToDelete );#define prvGetTCBFromHandle( pxHandle ) ( ( ( pxHandle ) == NULL ) ? ( TCB_t * ) pxCurrentTCB : ( TCB_t * ) ( pxHandle ) )2、将要删除的任务从就绪列表中移除,如果优先级下只有一个任务,就
原创
发布博客 2020.06.15 ·
346 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

freertos 源码详解四 任务创建prvAddNewTaskToReadyList

xTaskCreate()函数的最后一个动作:prvAddNewTaskToReadyList( pxNewTCB );1.uxCurrentNumberOfTasks++;2.如果创建的是第一个任务,初始化以下列表:vListInitialise( &xDelayedTaskList1 );vListInitialise( &xDelayedTaskList2 );vListInitialise( &xPendingReadyList );3.用prvAddTaskT
原创
发布博客 2020.06.15 ·
896 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

freertos 源码详解四 堆栈初始化

在prvInitialiseNewTask函数中,有一个步骤7:pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters );下面详细讲解这个pxPortInitialiseStack:StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParam
原创
发布博客 2020.06.10 ·
1384 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

freertos 源码详解三 创建任务函数

一、xTaskCreatexTaskCreate( TaskFunction_t pxTaskCode,const char * const pcName,const uint16_t usStackDepth,void * const pvParameters,UBaseType_t uxPriority,TaskHandle_t * const pxCreatedTask )1。申请堆栈内存。pxStack = ( StackType_t * ) pvPortMalloc( ( ( (
原创
发布博客 2020.06.10 ·
1478 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Cotex M3 通用寄存器传参过程

参数abc分别通过r0 r1 r2 传进来;BL跳转:BL 转移并连接。用于呼叫一个子程序,返回地址被存储在 LR 中BL Label ;转移到 Label 处对应的地址,并且把转移前的下条指令地址保存到 LR返回值如何返回?...
原创
发布博客 2020.06.10 ·
374 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

freertos 源码详解二

StackType_t *pxStack;pxStack = ( StackType_t * ) pvPortMalloc( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t )
原创
发布博客 2020.06.09 ·
549 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

freertos任务调度器

任务调度器初始化过程:1.创建空闲任务/* The Idle task is being created using dynamically allocated RAM. */xReturn = xTaskCreate( prvIdleTask,“IDLE”, configMINIMAL_STACK_SIZE,( void * ) NULL,( tskIDLE_PRIORITY | portPRIVILEGE_BIT ),&xIdleTaskHandle ); /*lint !e961
原创
发布博客 2020.06.06 ·
852 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

freertos 软件定时器

TimerHandle_t xTTimerHd1;TimerHandle_t xTTimerHd2;void vTimerCallback(void){static u32 a = 1;u32 b = 0;printf(“fast:%d\r
”,a++);//xTimerReset( xTTimerHd2, 0 );if(a==5)xTimerStop(xTTimerHd2,0);b = xTimerIsTimerActive(xTTimerHd2);printf(“b is:%d\
原创
发布博客 2020.05.23 ·
243 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

FreeRTOS 二值信号量

运行过程描述如下: 任务 Task1 运行过程中调用函数 xSemaphoreTake 获取信号量资源,如果信号量没有被任务 Task2占用,Task1 将直接获取资源。如果信号量被 Task2 占用,任务 Task1 将由运行态转到阻塞状态,等待资源可用。一旦获取了资源并使用完毕后会通过函数 xSemaphoreGive 释放掉资源。 任务 Task2 运行过程中调用函数 xSemaphoreTake 获取信号量资源,如果信号量没有被任务 Task1占用,Task2 将直接获取资源。如果信号量被
原创
发布博客 2020.05.14 ·
382 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

中断卡在configASSERT( ucCurrentPriority >= ucMaxSysCallPriority );

在使用stm32f4-discovery的FreeRTOS是设置一个按键中断,但是中断发生之后程序就卡住了,通过调试,发现程序卡在port.c中的configASSERT()语句。通过查找资料发现是中断优先级设置的问题。CORTEX内核的优先级是数值越小优先级越高,即0是最高优先级。FreeRTOS为了满足某些应用对中断实时性要求高的需求,使得中断优先级高于某个值之后,就不能调用操作系统的内核函数来提高实时性。而我所犯的错误就是将中断的优先级设置的高于这个值,却还在中断中调用操作系统提供的API引起的。
原创
发布博客 2020.05.12 ·
5762 阅读 ·
6 点赞 ·
2 评论 ·
16 收藏
加载更多