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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ t! n2 \5 _/ _/ Q$ y# ~0 z#include <linux/init.h>
2 g+ R, c0 I5 q9 p#include <linux/module.h>
: [5 K3 |4 A" l' T0 T#include <linux/kernel.h>
, K  V, X, F5 S$ `#include <linux/types.h>+ p; q) |1 n# U" {4 l
#include <linux/gpio.h>
/ L: e: q! C- v#include <linux/leds.h>2 x0 Q  }6 g' o2 B, ^' Y- `% {
#include <linux/platform_device.h>
* Q! Q5 Y' Q4 v( U! D  [* \" y+ N& q3 j5 c4 W7 G' j% T: E
#include <asm/mach-types.h>
" k( z! c3 ~9 w0 V#include <asm/mach/arch.h>5 w  Z# {9 ^3 Q* u3 f$ W
#include <mach/da8xx.h>$ R, i( w3 v; z3 P
#include <mach/mux.h>9 `- E" ]/ |3 R# `2 r$ v: H5 v
) P: a( V+ N9 V& d3 G. D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 b4 j* S6 A+ P; B4 v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% @2 j" ^) b/ e' v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 j7 O' w# ]7 D& `- |" y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) S6 W# S2 {% J  p: g5 w3 o
% k4 d5 Z* F) x$ {% u+ o  `/* assign the tl som board LED-GPIOs*/7 u4 C, V8 X' P) z
static const short da850_evm_tl_user_led_pins[] = {
8 g' V2 B% C$ m1 f        /* These pins are definition at <mach/mux.h> file */
+ f3 b/ K' t" P5 f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; u  T$ i+ G5 w  ~
        -1) X1 Q  P$ ^) T5 H9 G/ f6 g& e. C  o
};# A! E! i, j6 S1 N+ x

: N4 n8 v  w4 Z- ?3 B3 }static struct gpio_led da850_evm_tl_leds[] = {& ^7 S. i1 U8 R1 n) q" |
        {
% G  y+ }/ J' V. ~+ |3 s  M1 F                .active_low = 0,/ A0 C3 H6 z2 j  z$ ?, g& M# N
                .gpio = DA850_USER_LED0,4 F* w7 o1 ?1 {, b+ C: d$ s
                .name = "user_led0",' c& d9 d3 {1 J) P( C1 p
                .default_trigger = "default-on",
- Y; W+ X: c1 h        },3 F7 X' b- H! }3 E7 x
        {9 z- D3 z# L7 u8 w8 ]
                .active_low = 0,
0 D$ I4 y4 f' W" u                .gpio = DA850_USER_LED1,0 Z& @! }* @5 H' g
                .name = "user_led1",! H: U! K6 b3 `4 I: |
                .default_trigger = "default-on",
5 B" f( ~% I) i6 E        },) k. F! o# f- q
        {5 z! `# Q+ L% O  X0 C& i
                .active_low = 0,9 `7 H: V/ p' [
                .gpio = DA850_USER_LED2,
: Z) J. `% P& a) K                .name = "user_led2",' I. p2 p: f9 u0 S1 R
                .default_trigger = "default-on",' i2 N5 p4 R2 b) r$ E
        },$ C5 U3 ?) t# H* ]9 s
        {6 p2 J; Y$ Y% Q$ w  u& e
                .active_low = 0,  X2 D" |9 h, F% c7 y4 T
                .gpio = DA850_USER_LED3,! [7 M  L& w, W- P" ?
                .name = "user_led3",9 E& y* m2 d7 u) S% q( m5 K2 C
                .default_trigger = "default-on",; U( @# N3 D: f3 ^) I) z4 o2 n! T
        },
) M/ V. t# s1 f2 r+ o+ i};# ^. a& w7 [' T# }, T2 a+ Z, O7 v

2 M$ z3 Z( w9 E9 `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; P+ t+ P8 M- @/ m+ j, Q% d: C9 Y1 r        .leds = da850_evm_tl_leds,
: {4 }* v0 f$ ^& P7 g' i" a+ ~' ~2 I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ v+ {, U9 _  z; s/ M9 T};, v/ h! s# n/ P' D* M1 k
7 v, n! O! N- D$ Z& m
static void led_dev_release(struct device *dev)& b' y( Z; y2 {
{
3 p" \, o2 o# ^( L) ~& |5 W};
8 P, m% d- G* [9 _8 E! r
. d& v$ a1 C, V6 v5 \static struct platform_device da850_evm_tl_leds_device = {$ w+ \- Y: M' o  g0 q
        .name                = "leds-gpio",# C$ F( R! _& H8 v
        .id                = 1,
  N& a( y1 Q; b        .dev = {
3 {2 n& z! S8 L5 Q) f( c                .platform_data = &da850_evm_tl_leds_pdata,
( L8 B- H% N4 ?                .release = led_dev_release,) O2 Z7 L4 V' j
        }
9 a9 z9 |& I8 F5 |1 N};2 i* x$ a% t/ i9 h6 R

( L4 u7 w" Y0 p6 \' nstatic int __init led_platform_init(void)
  d, S; J& D8 {. X{4 O8 `7 U( W& ]7 b
        int ret;, K6 I; r1 @" W9 j( A! g( Y
#if 0
5 `7 ?' H% E5 H8 m6 Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 i% R0 O9 _0 m5 n$ P- C        if (ret)- t1 i6 K7 I, x: _) X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" v% f+ I- d9 V% N
                                "%d\n", ret);* c, Q' t- G+ A: x
#endif
5 _" }/ Y* H  {        ret = platform_device_register(&da850_evm_tl_leds_device);/ B$ P' n' p' o# z/ @  q' q
        if (ret)
' K' p" N) d+ i7 X9 i+ Y; {1 S9 u                pr_warning("Could not register som GPIO expander LEDS");
# e5 s+ g6 q3 S' t" W* b        else
* P0 k8 d5 t6 u( ^& a3 E                printk(KERN_INFO "LED register sucessful!\n");
3 F1 K- l( m- R
9 t; D) i: a, M0 ^* i7 ]8 R: w        return ret;/ B% R# f' S/ ^5 }. L
}  V+ e/ \7 Q$ u% A% g

# C* f) n# F: d6 Gstatic void __exit led_platform_exit(void)
* m4 A' R( `% h! s+ V5 j4 c: A1 D{
: Z! Y% G( I% A; h        platform_device_unregister(&da850_evm_tl_leds_device);6 p. K! e; j* i8 L! Q( I

; H/ ^5 A+ J, _* c  x* e3 ^        printk(KERN_INFO "LED unregister!\n");
, S! f7 p& P) l0 H( }+ C- x  Y}# ?: {- I7 P; P; M( u
/ k; a7 S, P$ F' a& v9 q  ~) t( i
module_init(led_platform_init);$ D! d8 ]  w5 \4 P! j) h7 H% [
module_exit(led_platform_exit);
5 r+ L' n- y" ]4 v& ^$ N% q) P& y) k. B( q$ x: |- ^" I- ~& c& Y" e! U( Z
MODULE_DESCRIPTION("Led platform driver");/ S$ b! |, S# G( B$ w8 A) a
MODULE_AUTHOR("Tronlong");
/ e' l9 ^2 T5 T, Z) S; P# DMODULE_LICENSE("GPL");8 w- Y' R6 y- a

1 J" Q( B" d/ M! T1 c# z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-26 04:31 , Processed in 0.042340 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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