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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ ^/ X/ P9 H# ~#include <linux/init.h>
/ p4 r/ O) ^. R  ~- @#include <linux/module.h>- X7 `* U7 |7 u" J" W! v9 {, |
#include <linux/kernel.h>
2 Z' i3 I! Y2 p+ o% Q#include <linux/types.h># \9 G1 T; ~3 Z/ s
#include <linux/gpio.h>2 l# ?/ n0 [: s
#include <linux/leds.h>' x( P+ w3 F: u' |
#include <linux/platform_device.h>
( U, T% K5 t" b# m6 r8 o9 n, L" b$ f* `, L! n  \/ @9 e, r1 P4 C1 i4 V5 P
#include <asm/mach-types.h>: e7 B, z0 h$ K0 {' T' V
#include <asm/mach/arch.h>
. B" `' O7 {5 u, Y1 D9 F# f#include <mach/da8xx.h>
4 r9 J; E7 v/ X- _! e#include <mach/mux.h>2 S! g3 d1 O0 H- N
2 }2 I  {- G1 _7 f2 I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 |: h5 M# ?% L6 r
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ I3 p$ O+ p3 ~; N0 r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* C' c6 d& r6 ^4 e+ |: B( }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  u9 p  {% I! C$ r2 h$ q0 j2 q9 J6 H$ ~
/* assign the tl som board LED-GPIOs*/( H6 U! s9 s/ C
static const short da850_evm_tl_user_led_pins[] = {# s! K6 o; X* n( ^; C
        /* These pins are definition at <mach/mux.h> file */
4 M8 ~! @  s! U& L; K) c9 y; Y# P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) g2 x3 S' k3 U+ d
        -1
$ h# B3 k. D2 |};
& e& ^- z  G% }% n3 G
; ]# ~# o# Z6 estatic struct gpio_led da850_evm_tl_leds[] = {/ I( U  L7 u( D% {' U
        {
, U* w* T8 C! M5 l# ]0 B3 V                .active_low = 0,
& \3 ^2 {' q8 i1 _: o1 |8 @                .gpio = DA850_USER_LED0,9 P" A+ O" T+ w6 @+ M
                .name = "user_led0",: Q8 R7 ?9 Q% ?  h7 d+ T
                .default_trigger = "default-on",. k2 Q# `& B5 s% w! h
        },% ?7 S) i+ ?0 s& P
        {
* }3 h$ v: |8 `  H0 e; P# O  o, z                .active_low = 0,4 H5 Y" ?# K* \7 E% E" Z" E9 q3 V/ r
                .gpio = DA850_USER_LED1,
2 `* n! Q! H5 W                .name = "user_led1",
6 R  V# }0 h! V. e( X  g: Y4 ^                .default_trigger = "default-on",
0 c+ x8 q8 i/ E% m8 l* O, G        },
6 n: e. X' [- m# K/ j, d; F        {
  i% J% T" j% q. \                .active_low = 0,. l1 G/ i. A: a4 t  m( |
                .gpio = DA850_USER_LED2,! v0 A( e$ j0 v+ O0 E. R  u
                .name = "user_led2",
% q5 W9 n; s' L( p2 r                .default_trigger = "default-on",
6 O7 V; @1 J0 t        },
5 Y% t2 I4 C  N0 d- P7 n% E        {1 E4 a7 z9 ^* O
                .active_low = 0,
5 n7 W; x3 Q; L" l& G! U3 h% M% k                .gpio = DA850_USER_LED3,
; d, _! D4 {6 S9 e                .name = "user_led3",
8 J- M$ _4 K+ t3 y2 ?$ ~                .default_trigger = "default-on",
# z' `: }; E- M6 E& `3 f3 U# |        },; `/ s9 r  R5 g- D
};. {. K# v8 K' i+ l
7 G! [3 Y0 N2 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# R" M! S$ K: t4 l  m4 d- ]3 w        .leds = da850_evm_tl_leds,; v( }5 g& s5 P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 d7 y2 F1 {* n: `& c( _
};* M3 J5 z2 e, `/ e; O( A9 }
3 l7 F1 A) r/ U% z( A0 ^
static void led_dev_release(struct device *dev)- ^5 K' y$ r/ _. K$ ~# `
{
' O8 t. K$ k0 a0 q: s};; C0 _6 X2 Q6 x4 }4 @' R( }! N

3 t" `3 J; L. rstatic struct platform_device da850_evm_tl_leds_device = {
3 z! O. p5 A7 Q: u        .name                = "leds-gpio",
' G. H; W; Z6 U. `        .id                = 1,
+ z: |$ l$ v- K  A* {        .dev = {
6 T. l4 n$ u5 f$ G5 L. d                .platform_data = &da850_evm_tl_leds_pdata,; Z  y* P* b7 D( X/ e3 K8 S
                .release = led_dev_release,/ C/ H/ R" X, v0 s& n; v- |8 |7 l
        }; j! n/ l! E9 T0 e  V
};
% T% D2 v( x( l% K' _. ?$ Y+ K5 h1 W- w6 E
static int __init led_platform_init(void)
) `8 B- s1 y6 j2 T0 t{
9 O6 R' a4 d% w% |        int ret;
& q# L6 j+ p" L#if 0
& p7 n' q: f7 J( U/ H! l( R9 |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& s: {( N) ?$ \! D
        if (ret)8 m; N' s: k9 k; x* e
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 c7 k2 u9 T+ C  I$ T1 b
                                "%d\n", ret);
! y& L" y& M& g. T2 D7 P2 J5 l6 k#endif4 g1 i' M/ R2 {8 R6 \
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 D6 j5 z' i( Q% y6 ]1 D' j4 x        if (ret)
! @2 m- x2 f8 x  H$ \% E5 O                pr_warning("Could not register som GPIO expander LEDS");; |6 b* z) [! m4 n- {- I6 ^, b, L
        else
- m, N5 D' O4 w" F; h                printk(KERN_INFO "LED register sucessful!\n");1 h1 Y9 `9 f8 Z% d5 w% _

, ^0 o8 G( m; C# E, d2 |- r# ]- h+ E        return ret;& X+ d; J1 l% a' A3 k
}
9 p/ Y3 R7 @2 t3 f- C3 r
, T* R1 a. r2 b' `7 l- Ostatic void __exit led_platform_exit(void)! ]0 A( g& \# O$ w$ |8 e
{9 j  M) {. |4 }! @8 V/ e' E- g0 F
        platform_device_unregister(&da850_evm_tl_leds_device);
' p: Y  F) a3 N( _9 ]6 A" R* M- c* z+ q, M
        printk(KERN_INFO "LED unregister!\n");
( r* e2 Z2 n7 l  o0 s0 }4 [/ l}
5 G) r' C& q2 J& f: ~# f; ~; A
( \# s& ~7 c4 q. G' w# w8 imodule_init(led_platform_init);# {! g# S2 f# \) o7 ^; d
module_exit(led_platform_exit);4 z$ I6 x) M* l2 M( O

, N/ D9 C( f: b; X/ E, I/ HMODULE_DESCRIPTION("Led platform driver");! y( v2 _' S# G: L
MODULE_AUTHOR("Tronlong");
- `9 f, R) C, T  ]0 \/ H3 PMODULE_LICENSE("GPL");) K1 H7 L& b% y8 }
" t3 F+ }5 p( F( W2 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 14:01 , Processed in 0.039497 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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