程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11088|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 o" M3 V: _8 u' t3 k) d
#include <linux/init.h>8 J1 T* f9 J9 H) w7 z
#include <linux/module.h>
, \2 B9 P" d/ l. y#include <linux/kernel.h>+ v2 ]2 S3 O) J% p, d  `
#include <linux/types.h>( L; T3 B9 A* \+ j4 b/ [
#include <linux/gpio.h>
' o0 A# D) V1 m; ^2 t1 w#include <linux/leds.h>- s4 x! U% q3 x8 ~2 P
#include <linux/platform_device.h>
$ r7 r% @# A- r" g$ t  r( Y. T6 O) j; @" T7 t- X
#include <asm/mach-types.h>
) d( D. R# w9 u# W; z$ K, A# {#include <asm/mach/arch.h>
4 Q8 Q* ^% F1 O! J8 t: Y#include <mach/da8xx.h>; N) _2 y+ }! I8 I. d* H
#include <mach/mux.h>
+ B3 R/ e6 [; K" V5 A
0 j/ e$ X. ~7 {# n2 [, `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, g" E; }5 P# v4 H( L: Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 S; X7 F5 Z' W. R# ?0 w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 A/ u) N( m8 x8 u6 ?0 I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* }/ u; U: K: b' k; _8 ?
, }8 ?" n) u; r/ ^
/* assign the tl som board LED-GPIOs*/
% D$ V0 a9 g: S% U# Ystatic const short da850_evm_tl_user_led_pins[] = {/ O) }6 \7 m( X) h
        /* These pins are definition at <mach/mux.h> file */
9 ?/ l' _, U  o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: F# ]8 L. G0 B' Q) L# K
        -1
$ }0 L) g; H/ l+ n" d# r$ O, n};  L7 F/ L/ e, w5 A2 u3 z

# m! U" O; i( W2 Tstatic struct gpio_led da850_evm_tl_leds[] = {+ ?1 M) {5 @; M; E0 i6 o
        {: Q6 h  [5 }  w5 W9 v
                .active_low = 0,6 {4 X, p5 O; _; B1 {
                .gpio = DA850_USER_LED0,
% [7 ]: U5 d4 W; ?                .name = "user_led0",
7 i/ B, i4 J8 S) C8 [                .default_trigger = "default-on",  ^7 [+ U& s1 l5 h
        },3 b9 C- ^8 `( N& c* t( v
        {
0 B3 i" s- [6 O7 n4 g                .active_low = 0,$ v7 o( {( a6 R3 p; {
                .gpio = DA850_USER_LED1,: R- R: g' l* Y
                .name = "user_led1",- _0 N3 r2 P; }9 w
                .default_trigger = "default-on",% U1 {6 D% d* Q+ D+ `5 K/ M+ ~
        }," _/ k2 H# N. }* g
        {
' M( r$ O) s* U, E' P- x* k                .active_low = 0,! j7 k1 r/ b7 I" s* V! u7 s& |  t
                .gpio = DA850_USER_LED2,
; O% t5 n$ n* d: ^/ \( {! ?                .name = "user_led2",
# q# R) ~/ D+ q9 N+ u                .default_trigger = "default-on",5 {% R& G7 J/ g4 d3 k
        },3 V2 q5 X. A( w) w
        {
+ }5 U# e( R5 d                .active_low = 0,
3 O% |5 [3 Z8 r% I% h0 M* {                .gpio = DA850_USER_LED3,
4 K5 o  A' H1 V0 M1 g                .name = "user_led3",2 O0 n4 Y7 R7 y  K. m# D
                .default_trigger = "default-on",
' U! ^% S. R0 G        },
) f; N: N* F. Q1 H- Y: ?( ^};3 U& q0 @8 s5 \" Z; z
% O$ Q" {9 c$ m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ C& X$ x% B5 u1 M/ y8 ^& `
        .leds = da850_evm_tl_leds,
) O( v" O( s" o/ [" ]$ i" a' s        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; |7 B. Z4 C; T2 ~1 L" z};
  N- F) E0 u' v4 a
2 g/ |, P7 Y4 r5 _" \5 tstatic void led_dev_release(struct device *dev)& a% c; F. {9 v& z( d; q
{
9 P9 K! ~. v3 K" R) C; `4 l5 T4 w6 @2 ]};# i; A! u# T1 t) t. v

" o: b! O5 r4 s2 bstatic struct platform_device da850_evm_tl_leds_device = {! w" ~+ W  o2 b* |% F
        .name                = "leds-gpio",
0 l: ^! ]+ P8 K) m# k- d/ l        .id                = 1,6 p* h4 Z' r3 |9 ^3 _6 D
        .dev = {. q) c" k* `. s/ R# x; B
                .platform_data = &da850_evm_tl_leds_pdata,$ F0 _4 W/ o' h" K
                .release = led_dev_release,
, H! m7 h9 T. m* K/ @        }
( W  a$ C% E" b: J6 ?( T+ ]7 Q2 N};
1 \! X; R1 G  Y! L. J6 D) ^) M
7 n* B% H& R) a. v- \static int __init led_platform_init(void)/ q; `0 r: n) h  ^* o
{
) _' y& W+ Q' J: c9 j$ ]        int ret;& q! ~3 Z5 R, f. s
#if 06 l7 r& t$ a9 b( s7 o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 ~9 N8 ~/ K# p8 u! p1 m0 c9 g2 w) ^4 w
        if (ret)
+ Q: K- k# m* n4 q1 ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 R& x( C1 S* R3 `                                "%d\n", ret);2 \' U/ I$ P; Z  R- p
#endif
2 R' e9 V& ^. R1 a- e# p/ ~' o        ret = platform_device_register(&da850_evm_tl_leds_device);" [& N$ q1 t3 ?1 N3 S3 K7 U
        if (ret)
7 c4 l/ ?1 ~" D2 `' x, j. r  ~                pr_warning("Could not register som GPIO expander LEDS");
. h* M0 k* s9 Z* c, D: N. d        else
$ O3 f1 |8 Z/ c, T: z& ]                printk(KERN_INFO "LED register sucessful!\n");4 {) Y$ I1 C/ [% {

/ }' W" c. U: C9 a1 H# v. W/ ^        return ret;& |6 j7 V( u: x; i& O; o
}
, k2 V: i5 P& r7 i; ~: E
8 Q% y8 m# r  F% @# y1 astatic void __exit led_platform_exit(void)8 b) K) R0 [9 _$ B8 M' j# Z
{' K' v& y4 R3 K7 {3 d
        platform_device_unregister(&da850_evm_tl_leds_device);
. S( q. j* Y' I, ^- k6 y9 F- _8 @! G4 a, L  L2 \' J$ W
        printk(KERN_INFO "LED unregister!\n");
& O: U. u  I* V}$ }; @- J. ^  h) t+ q# z  o5 p
3 b, B/ K! G. i' Y; w
module_init(led_platform_init);
% a5 E4 Z8 u# Lmodule_exit(led_platform_exit);& C9 ^* Y7 i- {4 I! Q
9 N4 M' V* f6 L7 A6 U. Y% ^
MODULE_DESCRIPTION("Led platform driver");
2 h4 u  H" H, C+ H% T3 `' Z, cMODULE_AUTHOR("Tronlong");) T- J8 o, t7 m" b% P, Q
MODULE_LICENSE("GPL");# O  A8 ~9 L# X) o: ~7 Z
& t$ C+ _, P' X. z  J1 `* B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-4-7 15:05 , Processed in 0.042901 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表