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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 t3 P8 p# F/ L; E# n) E
#include <linux/init.h>" R! ?0 t/ U. {, V
#include <linux/module.h>
4 q8 Q/ X1 s  K0 s, Z, y) p: _3 Q#include <linux/kernel.h>$ u8 {- u& h% ?/ P7 e2 [! O2 D! `
#include <linux/types.h>
* ^+ J9 g: g* x% j, k  i2 i8 i#include <linux/gpio.h>
! j. M" J( y3 ]$ K9 e* A#include <linux/leds.h>
% r) _3 Y! i9 }! b5 T( g7 X  X% Y#include <linux/platform_device.h>2 \1 ]. j- T9 V/ u

2 B; U% X$ k/ Z3 f#include <asm/mach-types.h>: }3 x8 m7 b- x5 |, b) m
#include <asm/mach/arch.h>
# o( k( T6 P- c& c) h#include <mach/da8xx.h>
9 J5 C$ o" m4 y; q& r; y#include <mach/mux.h>) B# j0 m7 {- i) S

8 S. r* G5 A) f+ z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. _. o) Z' \) ?7 F: s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 b6 L  {; ?4 R$ @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): z& L) `4 e( a6 Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( N' s. q  o6 Y3 R/ f7 \$ l! p3 O/ j3 V
/* assign the tl som board LED-GPIOs*/
9 W* u6 L, e& q- ostatic const short da850_evm_tl_user_led_pins[] = {9 P0 R; N6 e8 G0 R
        /* These pins are definition at <mach/mux.h> file */
. N$ I, w* W  V9 d( r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' j+ W3 J0 T% ?2 n
        -1( h& F2 `7 P; I' Z+ W
};8 A7 x; K* Y- o: ~

/ D1 x) p' \( J. w8 dstatic struct gpio_led da850_evm_tl_leds[] = {
! B8 x  ]( [! k' c* ^        {
: D! v, q7 f0 ?  G5 Q) y( S, ]! k                .active_low = 0,! j& A- f' ~+ Z/ H* K; P
                .gpio = DA850_USER_LED0,$ ?0 I% q5 w5 [5 S9 v
                .name = "user_led0",
6 |( Z  {- X1 ?: {$ z                .default_trigger = "default-on"," p* d& X3 O* V
        },
/ O! u$ s+ F/ J( ]1 _        {1 l' P7 B% P. m+ I$ J
                .active_low = 0,
! V8 v) a% v0 V& H1 ]3 c( |8 u. _                .gpio = DA850_USER_LED1,: D. ^/ K- g# [$ y. p/ l! J
                .name = "user_led1",
2 k& l4 h, H" a4 G0 g6 r/ Z                .default_trigger = "default-on",5 ?% ~0 {% t4 \" l8 M
        },
* l; L- [1 n8 K: i6 w        {( ~% J9 W+ ~/ O
                .active_low = 0,: q( X& @! `% K8 o; W5 a
                .gpio = DA850_USER_LED2,
. B0 y$ H- \2 K2 N# L. k, E& U                .name = "user_led2",
, K' |( b' z( I1 s) s# A* r                .default_trigger = "default-on",; m3 P8 D! J3 b3 h) E8 T- v
        },
2 i: ]: ]2 h/ L. D2 E1 v- _4 A6 C        {7 a2 r/ [- w% P+ m* K
                .active_low = 0,
( U, O! F7 {. @, u* X                .gpio = DA850_USER_LED3,9 O" L+ w2 ?$ A5 M5 U) Z6 m- v. V
                .name = "user_led3",
; e! R0 ]3 D, J& T. b- K& T, Y                .default_trigger = "default-on",
* x+ b8 K4 e: B* M7 d, g9 y" q2 f        },
; n" ~% G6 t/ j7 l5 @# D' U};
0 X5 f0 w3 n' ]3 E
4 G+ Q% ~* F+ S) Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 f8 Z/ k. V; g8 _8 ?( I! L" Z        .leds = da850_evm_tl_leds,& v; F0 j: ]8 h  r
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. \! b- p! i! c( ^9 }
};8 e- n1 e7 M4 ^6 ~' u' F
0 h* O! E3 g! Q: h. q/ o
static void led_dev_release(struct device *dev)
# S4 k  w& g: e{
7 H# T4 x8 E- C3 D' w1 v) H};
+ n  r) X5 Y* h2 b0 w
/ O4 w1 s1 K5 F9 Fstatic struct platform_device da850_evm_tl_leds_device = {/ c* T7 b! m* v8 Z, U
        .name                = "leds-gpio",' v6 f- `6 x( X. M! `
        .id                = 1,0 y0 Y1 ^/ \) v8 l
        .dev = {
% F0 J- b4 t) n8 R8 D& ?/ ~/ Y                .platform_data = &da850_evm_tl_leds_pdata,
- v" z- M" {# P, n3 I                .release = led_dev_release,, ^7 X4 k& Q1 |: {- l8 F
        }
' j2 ?' l9 r8 T( j5 G1 s- @};2 w  `8 X( y; S) i
& ?# M$ m2 n5 w  W8 b
static int __init led_platform_init(void)4 c3 K% N6 v% f" P3 g/ q
{" g+ Y7 v1 [! z3 `8 K4 Q: f
        int ret;/ e: N8 H! _& K
#if 02 O/ m; @% O% u( \' n; A" l
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ {$ m2 ?# s6 x/ j: e5 e% X, q& u        if (ret)/ W0 S( @! ?, {3 A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; A4 H7 O8 p* k- q' n
                                "%d\n", ret);
& x% [& f1 v4 P5 ]  `#endif9 x! K# E! y$ P4 i9 s1 c3 _
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ m+ @: ^# [4 ]7 ?) U5 i        if (ret)
9 m9 R" x9 l/ Y0 n0 z! g- P7 D                pr_warning("Could not register som GPIO expander LEDS");
& }5 W8 W8 j% K, b( L* A4 R        else8 r$ m/ C3 `6 W1 T0 o
                printk(KERN_INFO "LED register sucessful!\n");
8 C% |7 m) p+ c2 ~0 C4 r
3 y9 \, ]7 i" m% D        return ret;/ O. I$ ?( x% N; V' d" W
}
/ z8 _* N7 N, U# s3 ?4 @1 P2 s$ Q) ^( N  t* w
static void __exit led_platform_exit(void)
  w5 u. M& x) Y0 s{- r6 A3 \! h: h( N( i
        platform_device_unregister(&da850_evm_tl_leds_device);
3 }2 ?$ ?* O# m0 H( E) x( c! O3 Q" ?# h- g- N! n) t& _
        printk(KERN_INFO "LED unregister!\n");
5 @/ m( x! N4 N7 F, \% q}
* c; q6 ~" C; Q7 `' ~
( C/ y6 U9 r; V) Hmodule_init(led_platform_init);
2 l' L  c! D' T/ W# I- y0 g  cmodule_exit(led_platform_exit);
) U4 \; B7 H( S9 k2 X! z; i
" V: f! ^1 O; V) m3 g5 |MODULE_DESCRIPTION("Led platform driver");
+ W4 @) g" f& q, j$ f0 l8 uMODULE_AUTHOR("Tronlong");
# t3 s3 D/ D) ~MODULE_LICENSE("GPL");- c) K8 \2 [  L" G5 ]& W
: `+ S' L- m! c. X0 p; f9 G" c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 11:46 , Processed in 0.038600 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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