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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 t2 H% W% E+ D3 W#include <linux/init.h>: r% I; o& v: _5 l* w
#include <linux/module.h>& W8 y  [# ?" P7 _- R
#include <linux/kernel.h>
" z, a) X2 z" k#include <linux/types.h>
% o2 j4 M- J8 l  i#include <linux/gpio.h>
- C8 p4 M7 N; z6 ^, n& \#include <linux/leds.h>5 A, t/ h  J. v
#include <linux/platform_device.h>! O/ v6 N2 T, n( Q2 ?& c  S* J5 B
2 g! m, p( q, H( c/ x7 k: T
#include <asm/mach-types.h>4 ]5 J; ]" @* ^( |3 Z% h
#include <asm/mach/arch.h>8 b5 }' S7 ?) l
#include <mach/da8xx.h>/ Q' a- ^4 a& c. `% ]1 Q
#include <mach/mux.h>- c" W, ?4 a  N8 s% p5 e! A: x
- w8 E- D" A8 m3 H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); r# ]1 _6 V- i- I8 c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 J5 w- }, Q& F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ w$ @  _7 H! ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& h/ v/ ?" D/ j+ H3 ^9 l" U2 M
8 j: i7 w. l* t
/* assign the tl som board LED-GPIOs*/
" a, D% I1 U# W: ]static const short da850_evm_tl_user_led_pins[] = {$ x0 f4 q" v& P2 G" ]
        /* These pins are definition at <mach/mux.h> file */, H) ]: z9 o+ p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ ^& Y% X6 K0 [7 G* L( B$ H# ]5 m        -1
, W3 L& G1 [; d2 D' k9 N$ p. W};+ j# E' c, l' B$ b# s
$ G" W: D5 X: y# h8 B& d
static struct gpio_led da850_evm_tl_leds[] = {
+ G/ |# Z& u" F2 C" ^1 k        {
" }% @! W- B+ L9 o                .active_low = 0,, Y9 Y1 H- l: S
                .gpio = DA850_USER_LED0,! R# P3 [4 m* P. |
                .name = "user_led0",
: U1 ?* K# |' u1 h  w                .default_trigger = "default-on",, K$ S" S; l% a
        },9 W- X9 g0 y( g' B3 X7 P7 O
        {
$ g# t' C# w- d9 G" f5 `                .active_low = 0,: b/ y5 j% a, T9 I
                .gpio = DA850_USER_LED1,
7 z8 U- \7 e5 j# g                .name = "user_led1",
- G& C: v8 e7 l! G. A" ^) n7 g1 ^                .default_trigger = "default-on",
9 _; g3 r/ f4 `4 u1 C3 p; J8 _        },: a) ]3 S( z, H4 f. U# q
        {
9 p5 ]7 r0 d) v  a% r                .active_low = 0,
2 ]% D* M$ a4 ?' e; v% ?+ C% G                .gpio = DA850_USER_LED2,& I# D8 K6 s. p& B, O
                .name = "user_led2",
3 `5 S9 Z1 Y0 T. p8 N6 f5 A                .default_trigger = "default-on",
" u5 E$ z5 b- ?( j4 z4 `        },/ r" ]0 Z& ]& e  q
        {
/ O/ a% A8 N/ N5 A0 x7 N7 u, O                .active_low = 0,# z, ~( t+ @! @% F4 K& [9 k7 z
                .gpio = DA850_USER_LED3,/ T9 D0 G: w' W/ W1 }" e+ h
                .name = "user_led3",
2 p/ r! H% {3 U3 b, _  r                .default_trigger = "default-on",( C) D- ~- M3 C/ {& m. j, Y
        },
1 ]& R: W+ _1 a2 O! D& H/ u};
' g/ p, h, `0 X/ b3 d3 r
: A7 i9 z# w, R: z7 Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! T" D) k- x4 K        .leds = da850_evm_tl_leds,4 l8 Z3 J6 x* {# l& ^) y9 p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 {, l# O; o4 w* C6 q# i1 R4 B3 C};
4 K# _" {: X- h0 f( L9 @3 w6 B  P2 B( ^6 I! H* F
static void led_dev_release(struct device *dev)9 h2 _: J& F6 F+ {. C9 ]% J. {
{
3 t; {. V. p, ?6 h};* @  U) I4 L1 I7 N

/ |) o! H* E3 U. t  Jstatic struct platform_device da850_evm_tl_leds_device = {
; B$ m' l" ?  D# c0 p% J        .name                = "leds-gpio",
' W4 k' o) u6 \        .id                = 1,0 z$ J9 Z7 \& `
        .dev = {
4 E4 E. _( R" c+ J3 |1 }- B" R+ }                .platform_data = &da850_evm_tl_leds_pdata,* Y; i* b" b% B' V3 M' m
                .release = led_dev_release,( }# `9 x' |: z0 |4 L
        }6 t* N5 ~2 b) |9 R
};9 q8 B- K. S/ [3 P" e& p- ?( T9 C7 x
* Q1 T$ [. f& Z- A7 L
static int __init led_platform_init(void)
) d9 g6 d( Q. |$ O1 v{/ M  Q+ c$ g3 }  Z9 y- X$ X, p
        int ret;* M' ], w  S3 S
#if 07 [7 R- ]9 Q& [# \- j5 q7 V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 a) q, J9 Q( v4 z7 A* `4 U        if (ret)
/ K6 v, S( I. V2 K9 }3 m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 T  N9 r! ^1 v
                                "%d\n", ret);" ~% a: n9 ^% L- L* ~
#endif% t( v6 d% E  Z+ t1 [. \7 N( o, S
        ret = platform_device_register(&da850_evm_tl_leds_device);. U6 K# p% F- i2 x# E
        if (ret)4 h/ U) R& K5 m8 C( ?
                pr_warning("Could not register som GPIO expander LEDS");4 p) f. z5 F1 Q/ m
        else, U% d5 E$ y/ |
                printk(KERN_INFO "LED register sucessful!\n");
( R# a! m. t# `  C9 o. |5 u4 V+ j& r) l& M$ k. m3 P
        return ret;
6 ?1 V! g0 Y! i0 H; Y}& L4 r4 q" y" i* F

2 U) l1 N4 i  D. gstatic void __exit led_platform_exit(void)9 H( z/ L4 }3 j* Z$ W4 n! g( b1 q+ o; @% _
{
7 ^; O: ^2 c1 e        platform_device_unregister(&da850_evm_tl_leds_device);8 _, b2 G4 I1 _) E/ J8 F: b7 ^
, J9 E+ b1 `2 _7 E- f/ q
        printk(KERN_INFO "LED unregister!\n");5 Y8 y7 S- P2 t  z% |
}, `& c0 m) M% H' @, t+ {! E

$ p+ P, {, g, Q4 y8 ~- ^module_init(led_platform_init);+ b; t$ ]( {: f; D
module_exit(led_platform_exit);
! x) c( i' U. c. }, f) Q* T% f1 b% |- n) @% x+ k
MODULE_DESCRIPTION("Led platform driver");) ^9 N" {  v& A+ Y4 |
MODULE_AUTHOR("Tronlong");' e& {4 f4 r; b- D" J' S7 T
MODULE_LICENSE("GPL");
, a" Z$ D) H  i8 k( k/ k
* n' W  P3 d, \7 ]! W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-6 07:56 , Processed in 0.040525 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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