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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% i3 b0 ?4 q6 |0 ]#include <linux/init.h>
1 n9 P+ {3 Q. s( l  s, m; e$ j#include <linux/module.h>3 ~! \. U0 z$ J# g- e2 ~  W# O4 a
#include <linux/kernel.h># K, N; V0 J7 g7 p4 F7 \! W
#include <linux/types.h>
( _" ?6 Z' b& z: `#include <linux/gpio.h>
) }6 P& ]2 G- m/ J#include <linux/leds.h>
. N1 Y7 ~4 j- h) O#include <linux/platform_device.h>" r7 H9 h. w  t, @% h3 f& Y+ B4 U  l
* K5 t1 n4 Z$ z; T
#include <asm/mach-types.h>8 w- p4 v0 A& j1 s0 R
#include <asm/mach/arch.h>0 H# o9 ^( t/ V$ \6 _, M
#include <mach/da8xx.h>7 Z( ?! ^. h0 [3 E) v1 v& A" p  K
#include <mach/mux.h># M$ q' C; c0 n% `  m' _

8 y1 O( }: m& g' x8 d* a: q+ X2 z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ r% Z9 U% N: e4 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 k  O. i% H  y9 k+ J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 d+ U0 @+ b5 g; r2 q+ ~: l3 x$ K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! a: o: d' b& d7 \% @" j9 t6 V# y$ E/ n- W& R- Q9 c, o2 X
/* assign the tl som board LED-GPIOs*/7 n  H9 o) e; K7 ^) q1 E; F7 p
static const short da850_evm_tl_user_led_pins[] = {
5 A) g8 Y, G% B; [4 I+ w4 r        /* These pins are definition at <mach/mux.h> file */
! i# H9 F3 `3 N, f/ W( z6 O7 m( u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; P  f, o6 M" [- U; J) O
        -1
' ~! l  z; b: t* N0 y) N};
, y9 K. G" K  Q' X2 f" t/ L4 J
. K/ h* I1 }9 \4 ^3 wstatic struct gpio_led da850_evm_tl_leds[] = {: M% R4 P5 n5 x3 s
        {
8 y6 b; @: a+ \% ]6 V- v- F                .active_low = 0,
0 M7 \* m1 B- J) o$ _8 G9 ^* ?* m- i7 R. Y                .gpio = DA850_USER_LED0,) \3 A* m5 ^% P) h. |
                .name = "user_led0",' l2 _# z8 j! v
                .default_trigger = "default-on",
' {# r9 i1 V! `( Y. y$ I, F        },
: ]# q* L0 G; r' o7 i% q# B2 D        {' }. X4 e' m# `/ D2 b8 W
                .active_low = 0,
2 P2 V! Y: M9 W$ u9 b                .gpio = DA850_USER_LED1,; X/ {( b6 f9 q# y. b8 S; z% R
                .name = "user_led1",
( R8 |: @, X$ H8 a! ~( r2 e                .default_trigger = "default-on",4 V" Q) X$ U1 F
        },4 P2 t5 v# M: P6 @" Q9 x* H
        {7 G1 K/ O* `3 K$ |* b6 d
                .active_low = 0,) E6 w2 S- ?3 |
                .gpio = DA850_USER_LED2,
& t. Z3 K* m, r2 _                .name = "user_led2",
( V- w0 g( x1 d* m" S# i& M                .default_trigger = "default-on",
8 e7 r- S( a! t        },+ n0 Y3 b+ U* q: W
        {6 C! H: f+ G( \/ M7 n% K
                .active_low = 0,
  d' G* K; M6 k5 ]$ b                .gpio = DA850_USER_LED3,
; H' X/ X4 Z% z  a0 E: {                .name = "user_led3",/ v3 V2 P1 h! W9 G
                .default_trigger = "default-on",
8 f6 [3 ?" |& s$ J  u/ H        },
& [0 B0 h+ m; |8 x" Y7 ^4 q};- n: ]* B8 f2 |

6 Q, P) ]9 x) P. C, tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' Z! V( f) F2 z1 [, Q. w4 _        .leds = da850_evm_tl_leds,+ N! m) K; p* }+ M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 e2 Q$ E! Y4 J
};
: W5 ^+ ~# ?" \6 R6 L( @3 v) B5 z- y+ |; O# [$ O6 {
static void led_dev_release(struct device *dev); F7 x8 X" m: e' m+ l* Y9 g
{9 \! T* c: y# s* ?# I! V
};$ k  ~- N0 y: S+ }! A

! w& X7 Q4 ]0 w, e6 V! Kstatic struct platform_device da850_evm_tl_leds_device = {
% e- d9 _" R" V' u2 O$ W        .name                = "leds-gpio",
5 P% R- k( Y, U$ I/ a        .id                = 1,$ d) l7 e( g6 g
        .dev = {
) P: d8 C/ z* M; q; [                .platform_data = &da850_evm_tl_leds_pdata,
! \; }2 B9 A6 m  p/ b% Q4 {4 S' X                .release = led_dev_release,: [: R- U+ k  b* L
        }
3 K5 ?/ b1 y* r, m};. J0 r+ P9 I5 u% ?" @3 B+ ~: A7 n

% v$ U. I! R8 ^4 p- g$ z4 L2 Astatic int __init led_platform_init(void), Z6 X6 C" u5 B- `' q; z4 L5 x
{! S. D2 U  H6 `% Z) d  _
        int ret;! E# ^; }* _6 [& r
#if 01 N: B* N2 z0 \( t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( w0 i1 Q, _3 P! x# Z  S# Q! I
        if (ret)
5 k7 @, \- ~8 H8 v( f; i  |' }; f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". o, Y% P0 [3 l! |  T
                                "%d\n", ret);
6 H! W( I. a0 m#endif. K; _: J% ]. M8 a
        ret = platform_device_register(&da850_evm_tl_leds_device);
. T! e4 D9 P) Y9 `; u        if (ret)
3 }7 F4 D5 c7 u* |3 F* N% `                pr_warning("Could not register som GPIO expander LEDS");2 t& e& e- u/ O# O: i# L
        else
0 M; ^/ U; J( Q+ Y* t/ r9 N6 h* K                printk(KERN_INFO "LED register sucessful!\n");
, Z2 Z1 f( f. C8 z" _9 l+ m1 X" M0 g: I6 W6 m
        return ret;. I2 H3 |7 y$ v% M" X
}5 P3 l  t5 G2 x$ k( D

: _. i, E0 c$ t& Z- k" ~static void __exit led_platform_exit(void)
7 l' B" P2 R1 c% s{
) \3 j5 |  L$ O% Q! V        platform_device_unregister(&da850_evm_tl_leds_device);* X! l1 p9 g; t9 T2 d+ m' [- j
# _, t4 k% F3 g! M/ q3 c
        printk(KERN_INFO "LED unregister!\n");. {5 k0 x2 X7 y7 e- p' w5 t3 z/ |
}
( p! K" Y9 O: p" R/ E# t
; M! h9 t, X1 H: lmodule_init(led_platform_init);. k5 \/ y% y) p. h
module_exit(led_platform_exit);
) t# t: K4 ]% a; s7 B. @+ @9 E5 ?" T& u9 z/ w- h3 E) n! e
MODULE_DESCRIPTION("Led platform driver");1 n! z- u( Q* I' a
MODULE_AUTHOR("Tronlong");
8 o; V7 m) f- U% j4 bMODULE_LICENSE("GPL");9 R1 u. i$ f6 [) i

+ f8 ], F/ i. O7 y1 u; y5 g5 _2 d& B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 19:57 , Processed in 0.040249 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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