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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% Q; G6 u. L0 m#include <linux/init.h>3 n' x, Q  E+ R1 X  {( V# T7 {
#include <linux/module.h>
! w- z' H) o- d6 J) I! W' ?#include <linux/kernel.h>
4 f& I0 f7 r2 E* X$ e; A9 X#include <linux/types.h>
* m) v1 E3 R: G1 I. w#include <linux/gpio.h>
: z9 U! X8 G9 \; T* p7 ]$ x#include <linux/leds.h>' O4 C5 P/ b6 y7 k; r  a& Q( e
#include <linux/platform_device.h>
. Q/ Q* ~( r7 V2 T: P9 y2 y! V$ o0 \$ X9 K  a: n2 M
#include <asm/mach-types.h>
! r2 Y' N: T0 X5 T: H$ d#include <asm/mach/arch.h>
8 s3 q& d8 B# K9 X) K1 {#include <mach/da8xx.h>
* q7 K% T9 Q: z0 o. ?#include <mach/mux.h>! Z% _( ]: K) t" N+ ?" G
  n) u5 f$ K3 }" j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  V( V4 H- l8 e2 Q- E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- p/ j1 r* D' v' p& `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' L- I' i: ?  J# j6 J- n5 s4 h' j, e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* \, _' ~+ z& k( k' l+ |6 @3 O& Z+ ?7 r/ e9 }% u+ o
/* assign the tl som board LED-GPIOs*/
9 G, m; x3 p) I/ ]: S; X* p; O+ Mstatic const short da850_evm_tl_user_led_pins[] = {
2 E- |0 n% M2 g4 _  P        /* These pins are definition at <mach/mux.h> file */
! K/ s3 d( k* t( Q, ?. H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 ^- G5 Q) J2 s( v% A1 J
        -11 `% X+ F" _( ]7 M$ T- @
};
$ S, p5 p1 e) t/ |
: o$ I, q# A" B7 A( {) V4 mstatic struct gpio_led da850_evm_tl_leds[] = {
( G+ p( e1 ]! d# N7 ]/ a        {
# K2 E2 k; g9 T+ z- P" Z3 M                .active_low = 0,
5 Y  A& V6 L" w) u7 x                .gpio = DA850_USER_LED0,5 \; L5 ?0 i6 Y% G- }, P  Q
                .name = "user_led0",6 a3 v+ y- T! Y# Y9 c" n! Z
                .default_trigger = "default-on",
' M/ r4 v2 z, b        },
' l; w6 w: U4 ^' S# _- \        {. l! O& e  T+ H: Q! B+ _  U' H4 Y6 w
                .active_low = 0,0 B- G4 L/ P8 N6 u& g* v/ O* Z
                .gpio = DA850_USER_LED1,
+ A# A  u+ A: Q9 q$ o8 B+ M7 e                .name = "user_led1",
0 v( G) O& W/ [$ L1 ~$ p7 Y                .default_trigger = "default-on",
; |3 \1 N. |. i# j        },- _3 x  ^! D4 K& Y
        {* o8 l7 p5 {6 B4 n2 {" W: i( A
                .active_low = 0,. y6 r- h! l9 Z1 x& H+ V, |" c
                .gpio = DA850_USER_LED2,' m, ?8 a# ?6 h3 `! P% ]
                .name = "user_led2",
& i4 p; g# i# k                .default_trigger = "default-on",
% N- y& e0 T; I        },
0 @' ]# Z* U7 }( F* ]        {
2 T8 U. M+ p0 C$ r7 b3 G2 o. q                .active_low = 0,3 V7 R) K  u6 ~% f. K- i/ b* z
                .gpio = DA850_USER_LED3,
9 C5 j- Z7 e0 `/ j! G8 F' b                .name = "user_led3",+ L  T8 ]/ u, b6 Q4 H( [5 ]
                .default_trigger = "default-on",/ k3 w: [1 c( M3 i" M
        },
, P3 \; ~& X' a+ @4 L0 @+ ~6 F3 Z};
/ t/ H: D, V' w5 X& E1 l7 P
- @% q/ X# i1 a8 \) g* Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  x- R5 x# L; j8 R& S8 H
        .leds = da850_evm_tl_leds,$ y$ F9 v& p4 N9 ?9 a+ e; A6 K! r
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 a: y, B& i, F5 M5 O
};
1 I) p& }3 s$ }) G' b, j0 A1 ^: s. {7 ~' Q: @
static void led_dev_release(struct device *dev)  C1 R% s* i& F/ u$ z" M0 H
{( a' c$ F; U! ?. E, w
};
( r! @3 u0 w3 M1 Z$ F$ j& E8 T. i* }" v* G% h. x
static struct platform_device da850_evm_tl_leds_device = {- `4 x3 s( y- j2 J. x7 r
        .name                = "leds-gpio",
% }$ C# A# c5 O8 V2 }        .id                = 1,$ _3 n/ j5 _8 C/ y7 L" m& Q
        .dev = {0 C# h2 b' L2 i/ P
                .platform_data = &da850_evm_tl_leds_pdata,( j4 X) N# k" P! G; e
                .release = led_dev_release,- g/ \9 V; n, i) Z# N1 n' |  m* l
        }4 @3 k# v6 V( z' V2 Y
};
; }! \0 w$ l$ N- P( Y9 N0 K
1 k7 W8 A, p  C, }* J0 K6 w  ostatic int __init led_platform_init(void)+ X! l1 u" U+ [
{
* z1 ?* ]$ S' V4 Y7 a        int ret;
* L2 e7 P6 q4 c& a3 k#if 0' {8 L1 @8 o, J9 ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 s7 Q: O0 a2 _        if (ret)
4 n  X+ r# h5 H% l" H! ^# {8 c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 Y$ `  Y) U& V# v4 E, w# A
                                "%d\n", ret);
* p* [) @. C0 a9 ?* C, D1 A#endif# H5 n; J5 S0 r# s% R, H% E( L
        ret = platform_device_register(&da850_evm_tl_leds_device);. O8 L6 J6 @9 s, u: F; R5 Z
        if (ret)
! K+ A3 h! V, n# Y7 n4 ^, d' b0 t9 i                pr_warning("Could not register som GPIO expander LEDS");9 ]6 U7 }* o+ G3 _6 i/ p
        else( Z) ^( z, g4 G, B
                printk(KERN_INFO "LED register sucessful!\n");9 d# K6 R0 A9 g

' s+ D' ?% P( b7 K$ {. z: E* N- Q        return ret;9 y8 n. ?6 ~6 M- X: y/ Z, F
}
6 M: s% u( N" c: ]) Q- J# X" a9 z- y% o, Z, f- n: ]
static void __exit led_platform_exit(void); o$ D1 l5 x& B/ U, R' S/ B1 f# b
{
. y  s% _! Z: G; p        platform_device_unregister(&da850_evm_tl_leds_device);9 `. k4 B5 R8 ?/ v) r5 m) q! X
& Q5 f& W7 W3 g7 c8 Z
        printk(KERN_INFO "LED unregister!\n");
; y2 g' Y% ^, L& J9 P}
4 ]+ _) J% ?9 H: z
. M5 j% v- ^. K7 p; `; S  C0 X9 Fmodule_init(led_platform_init);
; A7 M2 N+ ]7 P6 D; V+ f2 B$ tmodule_exit(led_platform_exit);9 x( A2 s' i( d' @+ t% l* i

- O5 Y- r; f* U# x7 T2 T3 P2 B& wMODULE_DESCRIPTION("Led platform driver");
9 ~2 M2 U5 f+ g% G+ X; y/ XMODULE_AUTHOR("Tronlong");- O1 ^5 O: W9 i' N
MODULE_LICENSE("GPL");
6 }4 v. S$ S0 E* o+ l5 _% }' W5 z3 A; C+ O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 00:33 , Processed in 0.040100 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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